xiayu 发表于 2018-12-21 06:27:07

PHP-FPM高负载配置技巧

高负载网站使用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格式的格式配置。

页: [1]
查看完整版本: PHP-FPM高负载配置技巧