## 避免程序跑死(hang)
負載較高的服務器上定時重載php-fpm,`reload` 可以平滑重啟而不影響生產系統的 php 腳本運行。
例:每15分鐘 reload 一次,定時任務
~~~shell
0-59/15 * * * * /usr/local/php/sbin/php-fpm reload
~~~
## 增加最大處理請求數
最大處理請求數是指一個php-fpm的worker進程在處理多少個請求后就終止掉,master進程會重新respawn新的。該配置可以避免php解釋器自身或程序引起的 memory leaks。默認值是500。
~~~text
pm.max_requests = 1000
~~~
一般在項目中,會用到一些 PHP 的第三方庫,這些第三方庫經常存在內存泄漏問題,如果不定期重啟 PHP-CGI 進程,勢必造成內存使用量不斷增長。
PHP-FPM 作為 PHP-CGI 的管理器,提供了一項監控功能,對請求達到指定次數的 PHP-CGI 進程進行重啟,保證內存使用量不增長。`pm.max_requests`
**在高并發的站點中,如果值設置得太小容易出現 502 報錯。**
## 優化動態fpm進程數
對于內存較少的服務器或VPS上,使用動態方式分配。
對于內存大的服務器,使用靜態分配。
- PHP
- PHP 核心架構
- PHP 生命周期
- PHP-FPM 詳解
- PHP-FPM 配置優化
- PHP 命名空間和自動加載
- PHP 運行模式
- PHP 的 Buffer(緩沖區)
- php.ini 配置文件參數優化
- 常見面試題
- 常用函數
- 幾種排序算法
- PHP - 框架
- Laravel
- Laravel 生命周期
- ThinkPHP
- MySQL
- 常見問題
- MySQL 索引
- 事務
- 鎖機制
- Explain 使用分析
- MySQL 高性能優化規范
- UNION 與 UNION ALL
- MySQL報錯:sql_mode=only_full_group_by
- MySQL 默認的 sql_mode 詳解
- 正則表達式
- Redis
- Redis 知識
- 持久化
- 主從復制、哨兵、集群
- Redis 緩存擊穿、穿透、雪崩
- Redis 分布式鎖
- RedisBloom
- 網絡
- 計算機網絡模型
- TCP
- UDP
- HTTP
- HTTPS
- WebSocket
- 常見幾種網絡攻擊方式
- Nginx
- 狀態碼
- 配置文件
- Nginx 代理+負載均衡
- Nginx 緩存
- Nginx 優化
- Nginx 配置 SSL 證書
- Linux
- 常用命令
- Vim 常用操作命令
- Supervisor 進程管理
- CentOS與Ubuntu系統區別
- Java
- 消息隊列
- 運維
- RAID 磁盤陣列
- 邏輯分區管理 LVM
- 業務
- 標準通信接口設計
- 業務邏輯開發套路的三板斧
- 微信小程序登錄流程
- 7種Web實時消息推送方案
- 用戶簽到
- 用戶注冊-短信驗證碼
- SQLServer 刪除同一天用戶重復簽到
- 軟件研發完整流程
- 前端
- Redux
- 其他
- 百度云盤大文件下載
- 日常報錯記錄
- GIT
- SSL certificate problem: unable to get local issuer certificate
- NPM
- reason: connect ECONNREFUSED 127.0.0.1:31181
- SVN
- SVN客戶端無法連接SVN服務器,主機積極拒絕
- Python
- 基礎
- pyecharts圖表
- 對象
- 數據庫
- PySpark
- 多線程
- 正則
- Hadoop
- 概述
- HDFS