一:php-fpm.conf详细解析篇:php
pm = static (静态模式)时只需修改 max_children数值 pm = dynamic (动态模式)时只需修改其它三个数值 pm.max_children:静态方式下开启的php-fpm进程数量。 pm.start_servers:动态方式下的起始php-fpm进程数量。 pm.min_spare_servers:动态方式下的最小php-fpm进程数量。 pm.max_spare_servers:动态方式下的最大php-fpm进程数量。
设置”max_children”须要根据服务器的性能进行设定,每个php-cgi所耗费的内存在20M左右,所以个人”max_children”我设置成20个,20M*20=400M也就是说在峰值的时候全部PHP-CGI所耗内存在400M之内,低于个人有效内存512mb。这样能保证,在PHP大并发的状况下不会502错误。linux
设置”request_terminate_timeout”若是你的服务器性能足够好,且宽带资源足够充足的话你能够直将”request_terminate_timeout”设置成0s。0s的含义是让PHP-CGI一直执行下去而没有时间限制。而若是你作不到这一点,也就是说你的PHP-CGI可能出现某个BUG,或者你的宽带不够充足或者其余的缘由致使你的PHP-CGI可以假死那么就建议你给”request_terminate_timeout”赋一个值,这个值能够根据你服务器的性能进行设定。通常来讲性能越好你能够设置越高,20分钟-30分钟均可以。因为个人服务器PHP脚本须要长时间运行,有的可能会超过10分钟所以我设置了900秒,这样不会致使PHP-CGI死掉而出现502 Bad gateway这个错误。服务器
二.修改最大同时链接文件数
系统默认是1024,最好改大些
使用ulimit -a 能够查看当前系统的全部限制值,使用ulimit -n 能够查看当前的最大打开文件数。
新装的linux默认只有1024,看成负载较大的服务器时,很容易遇到error: too many open files。所以,须要将其改大。
使用 ulimit -n 65535 可即时修改,但重启后就无效了。(注ulimit -SHn 65535 等效 ulimit -n 65535,-S指soft,-H指hard)并发
有以下三种修改方式:php-fpm
①在/etc/rc.local 中增长一行 ulimit -SHn 65535性能
②在/etc/profile 中增长一行 ulimit -SHn 65535spa
③在/etc/security/limits.conf最后增长以下两行记录server
* soft nofile 65535blog
* hard nofile 65535进程
具体使用哪一种,试试哪一种有效吧,CentOS中使用第1种方式无效果,使用第3种方式有效果,而在Debian中使用第2种有效果。