PHP-FPM 是 FastCGI 的進程管理器。php
master 主進程理解如下信號:併發
# 查看 php-fpm 用戶 ps aux | grep php-fpm # 查看 php-fpm 進程 pid ps -ef | grep php-fpm # 啓動 php-fpm php-fpm -D # 關閉 php-fpm kill -INT [pid] # 重啓 php-fpm kill -USR2 [pid]
ps
是展現當前進程的快照。socket
/etc/php-fpm.d 文件夾中包含了全部進程池的配置,在主配置文件 /etc/php-fpm.conf 中有下面一行:高併發
include=/etc/php-fpm.d/*.conf
php-fpm.conf 的主配置文件包含全局配置,子配置是不一樣進程池的配置,例如 www。php-fpm
# s 秒,m 分,h 小時,d 天 # 子進程在 emergency_restart_interval 設定的時間內收到該參數設定次數的 SIGSEGV 或者 SIGBUS退出信息號,則FPM會從新啓動 emergency_restart_threshold 10 # 平滑重啓的間隔時間: emergency_restart_interval 1m # 子進程接受主進程複用信號的超時時間 process_control_timeout 10s
# 接收 FastCGI 請求的地址 listen: 'ip:port', '/path/to/unix/socket' # 設置進程管理器如何管理子進程 pm: static 固定數量, ondemand 進程在有需求時才產生, dynamic 動態設置
內存比較少,併發量不是很大的應用,能夠考慮採用 dynamic 的方式,這樣能夠控制 php-fpm 所消耗的總內存數。unix
在併發高或者流量波動大的狀況下,使用 static 能夠在高併發下得到比 dynamic 更快的響應速度。rest
可配置進程數量 = php-fpm 可配置內存 / (php-fpm 子進程的內存佔用 * 1.2)日誌