我的网站

您现在的位置是:首页 > 服务器运维 > freebsd > 正文

freebsd

进程php-cgi.exe,top显示进程数接近3000了,freebsd服务器严重影响了网站的访问速度已解决

netsnails2018-08-29freebsd3200
freebsd服务器进程中出现很多php-cgi.exe,top显示进程数接近3000了,严重影响了网站的访问速度,请问怎么解,程序是   php的 ,apache mysql php5的 ,内存32G也快耗用完

经本人多次试验,先分享如下解决办法,供参考

 

4b4c636etx6D0uPw12C96&690.png

 

php-cgi.exe 是windows中的,不是FreeBSD的。如果是安装的fast-cgi,它的进程名是 php-fpm 。可以在文件 /usr/local/etc/php-fpm.conf 中更改如(按实际需求):pm = dynamic  #定义为动态进程,pm.max_children = 96  #最大子进程,主要是这个,pm.max_spare_servers = 8  #最大空闲进程数.。要PHP5.3以上版本。平均一个PHP-FPM占80M,乘96,最大也只有8G内存(在负载极高的情况下),也可以再调大些。当有进程崩溃时会自动杀死它们回收资源
追问我上图了今天 11:33
回答
看上面的压力测试,明显是CPU负载大,内存还多着呢。可以按以下几个优化(记得更改后要重启php-fpm: /usr/local/etc/rc.d/php-fpm  restart ):
在/usr/local/etc/php-fpm.conf  中,加入进程方法为 kqueue
在 /usr/local/etc/php.ini 中,把 PHP所占用的内存数调高,比如用64M或96M。现在用的32M太小
如我上面回答所说,把最大子进程限制,比如改成96(根据你的CPU内核数、负载情况调整。比如CPU是2颗*6核*双线程,为24核,可以适当加到96个至256,看效果。512个以上没必要)。另外适当加大空闲进程数,比如用16个,以减小CPU开销。
如果你用的是PHP是5.2或以下版本,更改的地方不一样,其功能比5.3、5.4的少很多。
56 分钟前
     最后我舍弃apache 改用nginx了 解决了 , 无奈啊 ,不过线下我做实验 ,按照你的方法


发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~