您正在使用IPV4(35.153.166.111)访问本站 您本次共访问本站 1 次
 用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器 行情 简化版
文明驾车我带头,文明行路我带头,礼貌让座我带头      

[公益] 节省一分零钱 献出一份爱心 温暖世间真情       【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年74元      
虚位以待
2021年 冬至节 14
2021年 圣诞节 18
2022年 元 旦 25
2022年 春 节 56
 
  • 本类新增
    本类热门文章
    您现在的位置:首页 >> PHP >> 内容
    php怎么设置并发连接数
    内容摘要: 首先我们需要在服务器中找到php-fpm.conf配置(也有可能会在引入的www.fong配置中)找到如下内容:[global]pid=/usr/local/php/var/run/php-fpm.piderror_log=/usr/local/php/var/log/php-fpm.loglog_level=notice[www]listen=/tmp/p......
    首先我们需要在服务器中找到php-fpm.conf配置(也有可能会在引入的www.fong配置中)找到如下内容:

    [global]

    pid=/usr/local/php/var/run/php-fpm.pid

    error_log=/usr/local/php/var/log/php-fpm.log

    log_level=notice

    [www]

    listen=/tmp/php-cgi.sock

    listen.backlog=-1

    listen.allowed_clients=127.0.0.1

    listen.owner=www

    listen.group=www

    listen.mode=0666

    user=www

    group=www

    pm=static

    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这个值pm=dynamic这个是php的进程数是动态的会根据访问量来确定来回增加而在高负载的php环境下我推荐设置pm=staticphp-fpm进程数固定二.pm.max_children=???

    当用静态模式下进程数确定根据pm.max_children来进进行确定那么问题来了我的服务器应该设定多少php-fpm呢?从理论的角度上说php-fpm进程数越多越好,相当于一个酒店有很多个充足的服务员来为你服务肯定会比较爽啊,你也不需要等待。

    但是。。。。现实上总是残酷的php-fpm的进程数会受到你的内存大小的限制。一般情况下我们进程数=用机器内存(M)除以2再除以20(M);当然这个也不是绝对的你需要知道:你可以分配给php多大内存:你的服务器上是不是单纯的php服务器有没有比较耗费内存的其他程序(mysql)。你的每个php-fpm内存占多大:内存占用多大要根据你的php代码质量和处理的相关业务。当然你可以用命令去统计你的php-fpm平均占用内存大小。有人会问我如果设置不恰当会有什么状况出现呢?当数值偏小时请求到nginx会无法分配到php-fpm进程导致502错误b84533a9dbf5b505ff5abb4564b8cf8.png当数值偏大如果没有大访问量还好如果访问量较大的话内存都会被php占光了。导致系统响应缓慢cpu-system升高系统不断的去调整内存分配严重时会导致较高的cup-wait较高内存不够用了直接写磁盘磁盘io直线增加。cpu使用率也开始爆满。(如图所示)07d406dd10da893862b7e501b182c17.png三.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死掉而出现502Badgateway这个错误。四.pm.max_requests这个参数的含义是php-fpm工作进程处理完多少请求后自动重启,主要目的就是为了控制请求处理过程中的内存溢出,使得内存占用在一个可接受的范围内。比较适用于服务器搭载项目比较杂乱,有点请求会比较占用内存导致php-fpm占用比较大。在经过一定次数请求后会结束掉进程,释放自己的内存。如果这个值太小就会导致所有的工作进程几乎同时达到这个值并且进入需要重启的状态,当所有的工作进程都在同一时刻重启就会发生在数秒内甚至更长的时间PHP将停止响应直到所有的进程均重启完为止。这是不能接受的,所以我一般会把这个值设置为PHP启动后第一批工作进程达到此值需要重启时,第一个进程重启与最后一个进程重启之间的时间相差1分钟以上,一般在压力比较大的晚上这个差值将会扩大到5分钟左右,此时对进程重启对服务器的负面影响就可以忽略了。下面补充几个命令统计相关php-fpm相关数据1、查看php-fpm的进程个数

    ps-ef|grep"php-fpm"|grep"pool"|wc-l

    2、查看每个php-fpm占用的内存大小

    ps-ylCphp-fpm--sort:rss

    3.查看PHP-FPM在你的机器上的平均内存占用

    ps--no-headers-o"rss,cmd"-Cphp-fpm|awk'{sum+=$1}END{printf("%d%s\n",sum/NR/1024,"M")}'

    4.查看单个php-fpm进程消耗内存的明细

    pmap$(pgrepphp-fpm)|less

    重启php-fpm

    1.停止命令

    pkillphp-fpm

    2.重启或启动命令

    php-fpm-R


    /alidata/server/php/sbin/php-fpm

    版权声明:本内容来源于网络,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
    上一篇:php中如何使用unlink删除文件夹 下一篇:PHP加密解密
    发布日期:2021/10/19
    手机扫二维码直达本页
    发布时间:15:31:23
    点击:126
    录入:齐天大圣
    相关文章
    Baidu
    YiJiaCMS 6.0.9.10888 Build 21.11.30(MSSQL) 闽ICP备05000814号-1
    本空间由腾讯云(轻量应用服务器)提供,百度云加速提供加速防护
    ©2000-2021