美文网首页PHP
php-fpm 调优

php-fpm 调优

作者: 保儿洁 | 来源:发表于2018-01-03 14:40 被阅读86次
  1. 尽量少安装PHP模块,最简单是最好(快)的
  2. 把你的PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就可以(建议压力测试来得出自己服务器合理的值)
  3. socket连接FastCGI,/dev/shm是内存文件系统,socket放在内存中肯定会快些
  4. Linux下增加文件打开数,命令如下:
cat >> /etc/security/limits.conf <<EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOF
  1. 增加 PHP-FPM 打开文件描述符的限制:
vi $php_install_dir/etc/php-fpm.conf
rlimit_files = 51200
  1. 使用php代码加速器,例如 eAccelerator, XCache.在Linux平台上可以把cache_dir指向 /dev/shm
    /usr/local/php/etc/php-fpm.conf

重要优化参数详解:

pm = dynamic
pm参数指定了进程管理方式,有两种可供选择:static或dynamic,从字面意思不难理解,为静态或动态方式。如果是静态方式,那么在php-fpm启动的时候就创建了指定数目的进程,在运行过程中不会再有变化(并不是真的就永远不变);而动态的则在运行过程中动态调整,当然并不是无限制的创建新进程,受pm.max_spare_servers参数影响;动态适合小内存机器,灵活分配进程,省内存。静态适用于大内存机器,动态创建回收进程对服务器资源也是一种消耗
pm.max_children = 24
static模式下创建的子进程数或dynamic模式下同一时刻允许最大的php-fpm子进程数量
pm.start_servers = 16
动态方式下的起始php-fpm进程数量
pm.min_spare_servers = 12
动态方式下服务器空闲时最小php-fpm进程数量
pm.max_spare_servers = 24
动态方式下服务器空闲时最大php-fpm进程数量

一般php-fpm进程占用20~30m左右的内存就按30m算。如果单独跑php-fpm,动态方式起始值可设置物理内存Mem/30M,由于大家一般Nginx、MySQL都在一台机器上,于是预留一半给它们,即php-fpm进程数为$Mem/2/30。

LNMP在一台机器上参数(仅供参考,建议压力测试得出):

Mem=`free -m | awk '/Mem:/{print $2}'` #我的机器内存是987M
sed -i "s@^pm.max_children.*@pm.max_children = $(($Mem/2/20))@" $php_install_dir/etc/php-fpm.conf
sed -i "s@^pm.start_servers.*@pm.start_servers = $(($Mem/2/30))@" $php_install_dir/etc/php-fpm.conf
sed -i "s@^pm.min_spare_servers.*@pm.min_spare_servers = $(($Mem/2/40))@" $php_install_dir/etc/php-fpm.conf
sed -i "s@^pm.max_spare_servers.*@pm.max_spare_servers = $(($Mem/2/20))@" $php_install_dir/etc/php-fpm.conf

987M内存:
pm = dynamic
pm.max_children = 24
pm.start_servers = 16
pm.min_spare_servers = 12
pm.max_spare_servers = 24
Mon Nov 18 12:03:26 CST 2013

相关文章

  • php-fpm 调优

    尽量少安装PHP模块,最简单是最好(快)的 把你的PHP FastCGI子进程数调到100或以上,在4G内存的服务...

  • JVM调优

    1 调优层次 性能调优包含多个层次,比如:架构调优、代码调优、JVM调优、数据库调优、操作系统调优等。架构调优和代...

  • [实践]php-fpm 调优和配置

    知识点 一般php-fpm进程占用20~30m左右的内存就按30m算。如果单独跑php-fpm,动态方式起始值可设...

  • Twitter 工程师谈 JVM 调优

    一. 调优需要关注的几个方面 内存调优 CPU 使用调优 锁竞争调优 I/O 调优 二. Twitter 最大的敌...

  • Spark性能优化-开发调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 1. 开发调优 ...

  • Spark性能优化-资源调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 资源调优 num...

  • Spark性能优化-数据倾斜调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 数据倾斜调优 1...

  • JVM-GC调优

    零、本文纲要 一、 GC调优基本思路二、 新生代内存调优三、 老年代内存调优四、 GC调优案例 官方GC调优指南[...

  • 成为一名Java高级架构师到底要学习哪些技术呢?

    性能调优 性能优化本质 JVM调优 深入Tomcat的调优 mysql调优那些事 怎么写优雅的java代码 Spr...

  • 成为一名Java高级架构师你应该要学习的技术

    性能调优 性能优化本质 JVM调优 深入Tomcat的调优 mysql调优那些事 怎么写优雅的java代码 Spr...

网友评论

    本文标题:php-fpm 调优

    本文链接:https://www.haomeiwen.com/subject/ynmhnxtx.html