1.尽量少安装PHP模块,最简单是最好(快)的
2.把您的PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就可以
注:我的1g测试机,开64个是最好的,建议使用压力测试获取最佳值
3.使用socket连接FastCGI,linux操作系统可以放在 /dev/shm中
注:在php-fpm.cnf里设置< value name="listen_address">/tmp/nginx.socket< /value>就可以通过socket连接 FastCGI了,/dev/shm是内存文件系统,放在内存中肯定会快了
4.调高linux内核打开文件数量,可以使用这些命令(必须是root帐号)
echo 'ulimit -HSn 65536' >> /etc/profile
echo 'ulimit -HSn 65536' >> /etc/rc.local
source /etc/profile
注:我是修改/etc/rc.local,加入ulimit -SHn 51200的
5. 增加 PHP-FPM 打开文件描述符的限制:
vi /path/to/php-fpm.conf
找到“< value name="rlimit_files">1024< /value>”
把1024 更改为 4096 或者更高.
重启 PHP-FPM.
6.使用php代码加速器,例如 eAccelerator, XCache.在linux平台上可以把`cache_dir`指向 /dev/shm
如果出现如下问题:
发现/usr/local/webserver/php/etc/php-fpm.conf文件里定义的打开文件描述符的限制数量是
< value name="rlimit_files">51200< /value>
但用 命令ulimit -n查看,发现只有1024
并且已在/etc/rc.local里添加了
ulimit -SHn 51200
确没生效
解决办法:
vi /etc/security/limits.conf
文件最后加上
* soft nofile 51200
* hard nofile 51200
SIGQUIT 平滑终止
SIGUSR1 重新打开日志文件
SIGUSR2 平滑重载所有worker进程并重新载入配置和二进制模块
php-fpm 关闭:
kill -SIGINT `cat /usr/local/php/var/run/php-fpm.pid`
php-fpm 重启:
kill -SIGUSR2 `cat /usr/local/php/var/run/php-fpm.pid`