高负载网站使用PHP-FPM管理FastCGI:

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

hp 5.3.3 源码中开始包含 php-fpm,不用专门再打补丁了,只需要解开源码直接configure,关于php-fpm的编译参数有 –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-libevent-dir=libevent位置。
这个php-fpm 不再支持 php-fpm 补丁具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制:
master进程可以理解以下信号
SIGINT, SIGTERM 立刻终止
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`
其次配置文件不再使用的xml 格式,改为了INI,但是配置参数几乎和以前一样,可参照xml格式的格式配置。