php-fpm 配置

Hohogd 2017-03-27 10:35:48
NOTICE: [pool www] child 18368 exited with code 0 after 26705.242794 seconds from start
php-fpm日志很这样的警告,也按网上说的一些设置,还是没能解决

服务器配置 linux
内存4G 带宽4G 安装mysql,php,nginx 放有2个网站

php-fpm 配置
pm = dynamic
pm.max_children = 200
pm.start_servers = 60
pm.min_spare_servers = 20
pm.max_spare_servers = 100
pm.max_requests = 500

rlimit_files = 65535

nginx
worker_rlimit_nofile 65535;


...全文
205 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hohogd 2017-03-29
  • 打赏
  • 举报
回复
按现在的设置没出现过502,ip每天就1000左右,pv 3000-5000,流量不大
果酱很好吃 2017-03-28
  • 打赏
  • 举报
回复
这个是提醒,不是报错 这个提醒是进程ID 为 18368 的进程退出 因为这个进程使用了你定的 max_requests = 500 ,会自动杀掉,这是为了防止内存泄漏 你可以使用 pm.status_path = /test_status 并在 在nginx 中配置

location ~ ^/(test_status)$ {
		include fastcgi_params;
		fastcgi_pass unix:/tmp/php-cgi.sock;
		fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
	}
访问:http://ip地址/test_status?full 查看每个进程的使用情况(requests就是当前进程使用了多少次)
Hohogd 2017-03-28
  • 打赏
  • 举报
回复
改了100还是报一样的错误,而且现在流量也不大,一天还不到1000个ip
果酱很好吃 2017-03-28
  • 打赏
  • 举报
回复
start_servers 根据你的服务器负载来设置就可以了,只要不少于 min_spare_servers ,若初始进程不够用,会自动新开进程的(最大为 max_children 个),所以这个参数影响不是很大 max_requests 也要看你的负载情况,增大一些是好的,毕竟销毁和新开进程还是有开销的,这个参数要结合进程数来看,用 500 先试试,只要不经常 502 就没问题 你可以根据 空闲内存 计算一下 max_children ,按一个进程 25M 算吧
Hohogd 2017-03-28
  • 打赏
  • 举报
回复
好的,非常感谢 对了,我查看内存空闲的比较多,基本在2G以上,是不是增加 pm.start_servers = 60和pm.max_requests = 500可以提高性能 现在只有2个网站,mysql转移到其它机器上了 total used free shared buffers cached Mem: 4014788 1559240 2455548 0 328380 506064 -/+ buffers/cache: 724796 3289992 Swap: 0 0 0
果酱很好吃 2017-03-28
  • 打赏
  • 举报
回复
正常的,每个进程 requests 的数量差不多 比如你设置的 每个进程使用 500次,开了 60个进程,那么这60个进程都是循环使用的,所以他们的请求数都是差不多的,那么60个进程销毁的时间也会集中在某一个时间段内,因为当你看到 requests 是500 的时候,这个进程已经销毁了。 当然,没销毁一个进程,就会新开一个进程,requests 是 0
Hohogd 2017-03-28
  • 打赏
  • 举报
回复
这种警告也就集中在某个时间点,这是早上9点20分02秒 到 9点21分19秒,但我看了cnzz统计这个点ip也没超过100个 [28-Mar-2017 09:21:06] NOTICE: [pool www] child 20852 started [28-Mar-2017 09:21:06] NOTICE: [pool www] child 28136 exited with code 0 after 42113.965681 seconds from start [28-Mar-2017 09:21:06] NOTICE: [pool www] child 20853 started [28-Mar-2017 09:21:09] NOTICE: [pool www] child 28149 exited with code 0 after 42102.905389 seconds from start [28-Mar-2017 09:21:09] NOTICE: [pool www] child 20860 started [28-Mar-2017 09:21:09] NOTICE: [pool www] child 28156 exited with code 0 after 42100.751406 seconds from start [28-Mar-2017 09:21:09] NOTICE: [pool www] child 20861 started [28-Mar-2017 09:21:14] NOTICE: [pool www] child 28191 exited with code 0 after 42092.301028 seconds from start [28-Mar-2017 09:21:14] NOTICE: [pool www] child 20882 started [28-Mar-2017 09:21:19] NOTICE: [pool www] child 28216 exited with code 0 after 42085.223185 seconds from start [28-Mar-2017 09:21:19] NOTICE: [pool www] child 20895 started [28-Mar-2017 09:21:19] NOTICE: [pool www] child 28231 exited with code 0 after 42081.379994 seconds from start [28-Mar-2017 09:21:19] NOTICE: [pool www] child 20896 started
Hohogd 2017-03-28
  • 打赏
  • 举报
回复
查看了列表,基本都是这样,requests都在100以内,帮我看下这样的数据算 是正常吗 pid: 18294 state: Idle start time: 28/Mar/2017:14:20:45 +0800 start since: 2862 requests: 79 request duration: 304268 request method: GET request URI: /index.php?s=/esf/&district=2501&price=300,500&houseArea=110,130&room=3&curFloor=13,0&pointTo=%E4%B8%9C%E5%8D%97 content length: 0 user: - script: /var/www/m_wx/index.php last request cpu: 9.86 last request memory: 2097152 ************************ pid: 18295 state: Idle start time: 28/Mar/2017:14:20:45 +0800 start since: 2862 requests: 79 request duration: 232307 request method: GET request URI: /index.php?s=/esf/&houseArea=50,90&ddlUsedYear=1997,2006&curFloor=8,12&pointTo=%E8%A5%BF content length: 0 user: - script: /var/www/m_wx/index.php last request cpu: 12.91 last request memory: 1835008 ************************ pid: 18296 state: Idle start time: 28/Mar/2017:14:20:45 +0800 start since: 2862 requests: 79 request duration: 29625 request method: POST request URI: /index.php?s=/api/app/getTips content length: 152 user: - script: /var/www/m_wx/index.php last request cpu: 33.76 last request memory: 1310720 curl http://127.0.0.1/phpfpm_status pool: www process manager: dynamic start time: 28/Mar/2017:14:20:45 +0800 start since: 3430 accepted conn: 5533 listen queue: 0 max listen queue: 0 listen queue len: 128 idle processes: 57 active processes: 3 total processes: 60 max active processes: 11 max children reached: 0 slow requests: 0
果酱很好吃 2017-03-27
  • 打赏
  • 举报
回复
你的 max_children 设置有误 理论上一个进程占用20 - 30 M,我们就按 30M算(还要除去mysql 之类的内存占用) 30 * 200 = 6000 ,明显大于你的 4G内存,你改小一点,先改个 100 试试,慢慢往上加

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧