php fpm process.max,增多了 php-fpm 进程数之后,负载飙升 [待解决]

首先我的php-fpm.conf里面的配置是:

pm = dynamic

pm.max_children = 6

pm.start_servers = 2

pm.min_spare_servers = 2

pm.max_spare_servers = 6

查看此时的php-fpm的进程ps -ef f |grep php-fpm |grep -v "grep"

[root@VM_132_97_centos etc]# ps -ef f |grep php-fpm |grep -v "grep"

root 25325 1 0 23:35 ? Ss 0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)

www 25326 25325 0 23:35 ? S 0:00 \_ php-fpm: pool www

www 25327 25325 0 23:35 ? S 0:00 \_ php-fpm: pool www

然后我再通过top -p pid来查看php-fpm各个进程占用的内存大小:

[root@VM_132_97_centos etc]# top -p 25325,25326,25327

top - 23:47:53 up 157 days, 8:22, 1 user, load average: 0.11, 0.05, 0.02

Tasks: 3 total, 0 running, 3 sleeping, 0 stopped, 0 zombie

Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Mem: 3921660k total, 2547920k used, 1373740k free, 494916k buffers

Swap: 2097144k total, 0k used, 2097144k free, 1562516k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

25325 root 20 0 310m 5760 928 S 0.0 0.1 0:00.12 php-fpm

25326 www 20 0 310m 9372 3496 S 0.0 0.2 0:00.03 php-fpm

25327 www 20 0 310m 8748 3380 S 0.0 0.2 0:00.02 php-fpm

总内存为3921660k,php-fpmmaster进程占用的内存为总内存的0.1%,也就是3.829M;两个子进程分别占用的内存为总内存的0.2%,也就是7.659M。

修改后

pm = dynamic

pm.max_children = 60

pm.start_servers = 30

pm.min_spare_servers = 20

pm.max_spare_servers = 60

通过ps -ef f |grep php-fpm |grep -v "grep"|wc -l查看得到的结果是31,实际查看是1个主进程30个子进程。

[root@VM_132_97_centos etc]# ps -ef f |grep php-fpm |grep -v "grep"|wc -l

31

[root@VM_132_97_centos etc]# pidof php-fpm

431 430 429 428 427 426 424 423 422 421 420 419 418 417 416 415 414 413 412 411 410 409 408 407 406 405 404 403 402 401 400

[root@VM_132_97_centos etc]# ps -ef f |grep php-fpm |grep -v "grep"

root 400 1 0 00:02 ? Ss 0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)

www 401 400 0 00:02 ? S 0:00 \_ php-fpm: pool www

www 402 400 0 00:02 ? S 0:00 \_ php-fpm: pool www

www 403 400 0 00:02 ? S 0:00 \_ php-fpm: pool www

...

同样通过top -p pid来查看进程占用内存的情况:

top - 00:07:56 up 157 days, 8:42, 1 user, load average: 0.00, 0.00, 0.00

Tasks: 19 total, 0 running, 19 sleeping, 0 stopped, 0 zombie

Cpu(s): 0.2%us, 0.3%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Mem: 3921660k total, 2570892k used, 1350768k free, 494920k buffers

Swap: 2097144k total, 0k used, 2097144k free, 1562760k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

400 root 20 0 310m 5984 1144 S 0.0 0.2 0:00.02 php-fpm

401 www 20 0 310m 5492 660 S 0.0 0.1 0:00.00 php-fpm

402 www 20 0 310m 8208 3092 S 0.0 0.2 0:00.00 php-fpm

403 www 20 0 310m 5496 660 S 0.0 0.1 0:00.00 php-fpm

404 www 20 0 310m 5496 660 S 0.0 0.1 0:00.00 php-fpm

405 www 20 0 310m 8244 2924 S 0.0 0.2 0:00.00 php-fpm

406 www 20 0 310m 5496 660 S 0.0 0.1 0:00.00 php-fpm

407 www 20 0 310m 5496 660 S 0.0 0.1 0:00.00 php-fpm

408 www 20 0 310m 8856 3228 S 0.0 0.2 0:00.00 php-fpm

409 www 20 0 310m 8244 2924 S 0.0 0.2 0:00.00 php-fpm

410 www 20 0 310m 8244 2924 S 0.0 0.2 0:00.00 php-fpm

411 www 20 0 310m 8244 2924 S 0.0 0.2 0:00.00 php-fpm

412 www 20 0 310m 8244 2924 S 0.0 0.2 0:00.00 php-fpm

413 www 20 0 310m 8244 2924 S 0.0 0.2 0:00.00 php-fpm

414 www 20 0 310m 5496 660 S 0.0 0.1 0:00.00 php-fpm

415 www 20 0 310m 5496 660 S 0.0 0.1 0:00.00 php-fpm

416 www 20 0 310m 5496 660 S 0.0 0.1 0:00.00 php-fpm

417 www 20 0 310m 5496 660 S 0.0 0.1 0:00.00 php-fpm

418 www 20 0 310m 5496 660 S 0.0 0.1 0:00.00 php-fpm

总内存为3921660k,php-fpmmaster进程占用的内存为总内存的0.2%;各个子进程占用的内存为总内存的0.2%或者0.1%。后面我有做了测试,发下有时候子进程占用的内存都为0.4%。看来php-fpm进程所占内存的大小,不是固定不变的。仅仅是修改参数重启前后,主进程的内存占用就有变化。

跟踪调查:

571d882504825b01eb66a99b84606afe.png

2015-01-13 是1个php-fpm主进程,6个子进程。内存使用0.6455G

2015-01-20 是1个php-fpm主进程,30个子进程。内存使用0.4785G

这样平均下来,每个进程占用的内存就是6.958M。虽然内存利用率和CPU的利用率都上去了,但是负载有点过高了。负载之前从来不过0.1,修改后,负载高的时候直接飙到0.56。这是为何?

后续:

我在11点的时候将php-fpm配置又改回了初始的情况,只有6个子进程,内存的使用率立即降了下去,但是CPU的的利用率和负载延迟到15点才降下去,延时了4个小时。但是可以确定就是php-fpm的配置原因。

373.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值