PHP最大连接数的设置及php-fpm高并发参数调整设置了PHP中的最大连接数,并调整了php-fpm的高并发参数,推荐:《PHP视频教程》
php-fpm.conf配置在服务器中找到(有些会在导入的www.conf中)
[全球]
PID=/usr/local/PHP/var/run/PHP-fpm . PID
error _ log=/usr/local/PHP/var/log/PHP-fpm . log
log_level=通知
[www]
listen=/tmp/php-cgi.sock
听着. backlog=-1
listen . allowed _ clients=127 . 0 . 0 . 1
listen.owner=www
listen.group=www
侦听. mode=0666
用户=www
group=www
pm=静态
pm.max_children=200
pm.start_servers=40
pm.min_spare_servers=10
pm.max_spare_servers=20
pm.max_requests=1000
request_terminate_timeout=100
request_slowlog_timeout=0
slowlog=var/log/slow.log –
pm.max_children=30
pm.max_requests=500
pm.start_servers=4
pm . max _ spare _ servers=30一. pm= static
首先说一下pm=动态的值。这是php。过程的数量是动态的,并且将根据访问的数量来回增加
在高负载的php环境中,我建议用固定数量的进程设置pm=static php-fpm
二. pm.max_children=???
当使用静态模式下的进程数根据pm.max_children来确定时,问题是,我的服务器应该设置多少个php-fpm?
理论上讲,php-fpm流程越多越好,相当于一个酒店有很多服务员为你服务。肯定会很爽,不用等了。
酪。实际上,php-fpm进程的数量会受到内存大小的限制。一般情况下,我们的进程数=机器内存(M)除以2再除以20(M);
当然,这不是绝对的。你要知道:
1.你能给php分配多少内存:你的服务器是一个简单的php服务器吗,还有其他消耗内存比较多的程序(mysql)吗?
2.你在每个php-fpm中有多少内存:你使用多少内存取决于你的php代码的质量和你处理的相关业务。当然,您可以使用命令来计算php-fpm的平均内存大小。
有人会问我设置不合适会怎么样?
当该值很小时,对nginx的请求将不会分配给php-fpm进程,导致502错误
值太大的时候,如果访问次数不多,访问次数多的话内存会被php占用。导致系统响应缓慢,cpu系统上升。系统会不断调整内存分配
严重的话会导致更高的杯等待,更高的内存不足,直接写磁盘,磁盘io线性增加。cpu利用率也开始满了。(如图所示)
三.request_terminate_timeout
计算方法如下:如果你的服务器性能足够好,宽带资源足够充足,PHP脚本没有循环,没有BUG,可以直接将“request_terminate_timeout”设置为0s。0s表示保持PHP-CGI无时间限制运行。
而且如果你做不到这一点,也就是说你的PHP-CGI可能有BUG,或者你的宽带不够或者你的PHP-CGI可能因为其他原因被伪造,那么建议你给“request_terminate_timeout”赋值,这个值可以根据你的服务器的性能来设置。
一般来说性能越好可以设置的越高,20分钟到30分钟。因为我的服务器PHP脚本需要长时间运行,有些可能需要10分钟以上,所以我设置了900秒,不会导致PHP-CGI死机,造成502 Bad网关的错误。
四.pm.max_requests
这个参数的含义是php-fpm工作进程在处理许多请求后自动重启。主要目的是控制请求处理过程中的内存溢出,使内存占用在可接受的范围内。更适合服务器端来承载项目比较乱,有些请求会占用内存
php-fpm的使用量比较大。在一定数量的请求后,它会结束进程并释放自己的内存。如果这个值太小,会导致所有的工作进程几乎同时达到这个值,进入需要重启的状态。当所有工作进程同时重启时,它将发生在
在几秒钟甚至更长的时间内,PHP将停止响应,直到所有进程重新启动。这是不可接受的,所以我通常将这个值设置为PHP启动后第一批工作进程达到这个值时,第一次进程重启和最后一次进程重启的时间差
超过1分钟,在压力比较大的晚上会延长到5分钟左右,对服务器进程重启的负面影响可以忽略。
添加以下命令来统计相关的php-fpm相关数据
1.检查php-fpm中的进程数量
PS-EF | grep’ php-fpm’ | grep ‘池’ | WC-L2,检查每个php-fpm占用的内存大小
PS-YLC PHP-FPM-排序: RSS 3。检查你机器上的FPM平均内存使用情况
PS-no-headers-o’ RSS,cmd ‘-c PHP-fpm | awk ‘ { sum=$ 1 } end { printf(‘ % d % s \ n ‘,sum/NR/1024,’ m’)}’ 4。查看单个PHP-fpm进程的消耗
Pmap $(pgrep php-fpm) |少重启php-fpm
1.停止命令
pkill php-fpm
2.重启或启动命令
php-fpm -R
或者
/alidata/server/php/sbin/PHP-fpm是设置PHP最大连接数和调整php-fpm高并发参数的细节。请多关注其他关于Lei.com PHP知识的相关文章!