Ψ小川Ψ dě Blog

Home » , » PHP-FPM 的参数优化

PHP-FPM 的参数优化

PHP-FPM 是 LNMP 最常见的一种运行方式了,不过会经常 502 ,那么怎么样才能避免 502 或者说减少 502 的发生呢?如果你的 VPS 是高配置的,怎么样才能充分用上高配的好处呢?好吧,米饭今天来教你!

本文今天参考了很多的 PHP-FPM 教程,也算是米饭比较珍贵的学习笔记吧,珍藏版,欢迎共享!本篇只介绍 PHP-FPM 的运行方式,mod_php 啥的是不通用的,要知道 mod_php 是最优秀的 PHP 运行方式啦,处理动态最牛逼拉,不会 502 。

本文参考:

blog.linuxeye.com/380.html
blog.sina.com.cn/s/blog_4beab9e20101dqp8.html
wiki.linuxk.it/wiki/Addsite
blog.csdn.net/dc_726/article/details/12340349
java-er.com/blog/nginx-php-fpm-speed/

1.精简 PHP 模块,尽量少安装,如果不用就不安装。

其实米饭以前一直认为模块自然是越多越好月方便咯,但其实不是的,像我们使用 Wordrpess 其实并不需要用到 Mysqli 和 Pdo_mysql 的我们就可以不安装拉。 这也是编译安装的好处,像用源安装就比较杯具了,会安装一堆。

2.通过压力测试,调整 FastCGI 子进程数

通过自己对自己的网站经行压力测试来调整 FastCGI 子进程数,当然了越多进程数就会占用越多的内存。一般话大内存我们可以调整到 100 以上。像 1G 内存建议调整为 64 。

3.使用 socket 来连接PHP

通过 socket 连接 FastCGI,/dev/shm 是内存文件系统,socket 放在内存中肯定会变得快!不过 TCP 方式在高并发下比 socket 要来的稳定的些。

例如:<value name=”listen_address”>/tmp/nginx.socket</value>

4.Linux下增加文件打开数

方法一:

echo ‘ulimit -HSn 65536′ >> /etc/profile
echo ‘ulimit -HSn 65536′ >> /etc/rc.local
source /etc/profile

方法二:

cat >> /etc/security/limits.conf <<EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOF

5.增加 PHP-FPM 打开文件描述符的限制

# vi php-fpm.conf
rlimit_files = 51200

把1024 改的更高。
6.使用php代码加速器

推荐使用:Zend Opcache , Xcache ,APCu(APC)

7.增加 Swap 交换文件

增加突发高并发情况下的稳定性,除 OpenVZ 虚拟化之外几乎都是可以添加 Swap 的。

8.选择进程管理方式

自定义 PHP FPM 的 Master 进程管理该站点PHP进程的方式,可选的有:static,dynamic,ondemand。其中常用的为 static 或 dynamic ,是静态或动态方式,动态适合小内存机器,灵活分配进程,省内存。静态适用于大内存机器,动态创建回收进程对服务器资源也是一种消耗。如果是静态方式,那么在php-fpm启动的时候就创建了指定数目的进程,在运行过程中不会再有变化(并不是真的就永远不变);而动态的则在运行过程中动态调整,当然并不是无限制的创建新进程,受 pm.max_spare_servers 参数影响。

9.设置 FastCGI Cache

FastCGI Cache能非常有效的降低PHP对服务器资源的占用,可以简单理解为把PHP网页缓存为静态页。设置较为复杂,请自行搜索。

10.修改 php-fpm.conf 参数

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



本文来自:http://www.mf8.biz/

No comment yet.

添加评论

? razz sad evil ! smile oops grin eek shock ??? cool lol mad twisted roll wink idea arrow neutral cry mrgreen mrgreen

8 + 4 =