PHP-FPM 优化

  • 系统配置
    ulimit -n 查看系统资源限制. 修改 /etc/security/limits.conf 增加配置
* soft nofile 32768
* hard nofile 65535
  • Nginx 配置
    在 Nginx 配置文件中 添加 backlog 指定值.
# ... 
server {
    listen 80 default backlog=8192;
    # ...
}
  • PHP-FPM 配置
    配置文件 /etc/php/7.2/fpm/pool.d/www.conf 修改
listen.backlog = 8192

; 方式一: static
pm = static
pm.max_children = 200 

;方式二: dynamic
pm = dynamic
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 200

;处理完10000个请求后重启该进程
pm.max_requests = 10000

每个PHP进程按分配20-30M的内存来计算.
使用 static 方式, 只需关注 max_children 值就可以. 100个进程大概需要2-3G内存支持, 8G的服务器建议开400个, 16G的服务器可以开800个.
使用 dynamic 方式, 需要关注 开始启动进程数: start_servers, 空闲时开启的进程数: min_spare_servers, 最大开启进程数: max_spare_servers

  • 重启 PHP-FPM

sudo /etc/init.d/php7.2-fpm restart

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • php-fpm.conf重要参数详解 pid = run/php-fpm.pid #pid设置,默认在安装目录中的...
    冷风毅然阅读 4,429评论 0 0
  • php-fpm优化方法 php-fpm存在两种方式,一种是直接开启指定数量的php-fpm进程,不再增加或者减少;...
    小慕先森阅读 4,019评论 0 0
  • [toc] 在公司的网站上推荐使用 docker 容器来安装环境,一个项目一个 docker 容器。 、、 百度百...
    Mdvtrw阅读 5,374评论 0 1
  • 在实际的开发和应用中偶发的502,504让人头痛,下面转发一个写的比较全面的。 PHP-fpm PHP-FPM是一...
    daos阅读 7,154评论 2 18
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_阅读 5,876评论 0 3

友情链接更多精彩内容