企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
**一.PHP-FPM进程和线程特点:** 1.PHP-FPM是阻塞的单线程模型,PHP-FPM的每个进程只开启一个线程,一个线程同时只能服务一个请求。 2.服务进程内存使用统计: ``` ps aux |grep php-fpm|awk '{mem+=$6}END{print mem}' ```   **二.进程池:** [www] 查看进程池: ``` ps -ef #可看到www池中进程分配 ```   **三.进程守护者:** ``` user = nginx group = nginx #建议与nginx进程守护者保持一致 ```   **四.监听端口:** ``` listen = 127.0.0.1:9000 ```   **五.进程管理器核心优化:** 1.动态创建子进程: ``` pm = dynamic ``` 2.最大子进程数: ``` pm.max_children = 100 (默认5) #每开启一个php-fpm进程要占用近20M左右的内存,假设服务器内存为2G ``` 3.初始进程数: ``` pm.start_servers = 40 (默认2) ``` 4.最小空闲进程数: ``` pm.min_spare_servers = 20 (默认1) ``` 5.最大空闲进程数: ``` pm.max_spare_servers = 60 (默认3) ``` 6.最大多少次请求后子进程重生: ``` pm.max_requests = 10240 #有效降低内存消耗 ```   **六.进程状态监控:** 1.php配置: ``` pm.status_path = /phpstatus ``` 2.nginx设置方法: ``` location /phpstatus { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } ``` 3.客户端测试: ``` http://192.168.2.1/phpstatus ``` 4.进程状态信息: ``` pool: www # 进程池名称 process manager: dynamic # 进程管理方式 start time: 22/Jan/2016:15:49:00 +0800 # 启动时间 start since: 375 # 运行时长 accepted conn: 7 # 当前进程池接受的请求数 listen queue: 0 # 请求等待队列,如果不为 0 ,意味着 FPM 进程不足,需要增加 max listen queue: 0 # 最大等待队列数量 listen queue len: 1024 # SOCKET 等待队列长度 idle processes: 4 # 空闲进程数 active processes: 1 # 活跃的进程数 total processes: 5 # 总进程数 max active processes: 1 # 最大活跃进程数 max children reached: 0 # 达到最大进程数的次数,如果不为 0 ,意味着最大进程数不足,需要增加 slow requests: 0 # 慢请求数量,需要设置 slow log ```   **七.生成访问日志:** ``` access.log = log/$pool.access.log access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" ```   **八.开启慢日志:** ``` request_slowlog_timeout = 5 slowlog = log/$pool.log.slow ```   **九.增加php-fpm打开文件数的限制:** ``` rlimit_files = 65535 ```   **十.每个php-fpm进程的内存限制(php.ini):** ``` memory_limit=128M ```   **十一.进程最大执行时间,与php.ini中max_execution_time作用相同(php.ini):** ``` max_execution_time=30 ```   **十二.ab压力测试** ``` #ab->nginx->php->index.php ab -n10 -c10 http://bbs.linux.com/index.php ab -n1000 -c1000 http://bbs.linux.com/index.php ab -n10000 -c10000 http://bbs.linux.com/index.php ```   ### **系统的学习PHP** 关注:PHP自学中心,回复相应的关键词,领取以下视频教程 **ThinkPHP5底层源码分析** 公众号里回复:20190621   #### **还有其他的教程的关键词,请关注公众号查看每天分享的文章教程的头部** ![](https://img.kancloud.cn/96/af/96af322d2cdc53d3fbbe981affa60c7f_150x150.jpg)