php5.6之php-fpm优化

 php5.6之php-fpm优化



一.php-fpm 三种运行方式 ondemand static dynamic

http://blog.csdn.net/pzqingchong/article/details/53379772


二.关于php参数优化的辩证看待
https://www.douban.com/note/315222037/
http://www.myhack58.com/Article/sort099/sort0102/2012/33364.htm




三.php-fpm优化


1.php-fpm配置文件

/usr/local/php/etc/php-fpm.conf 管理php-fpm服务的配置文件
/usr/local/php/etc/php-fpm.ini php全局配置文件

[root@xclinux vhosts]# ps aux |grep php-fpm
root 891 0.0 0.4 29156 2928 ? Ss 19:47 0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
php-fpm 892 0.0 0.9 30752 6560 ? S 19:47 0:00 php-fpm: pool www
php-fpm 893 0.0 0.9 30752 6556 ? S 19:47 0:00 php-fpm: pool www
root 1805 0.0 0.6 12332 4204 pts/0 T 22:34 0:00 vim /usr/local/php/etc/php-fpm.conf
root 1830 0.0 0.1 5980 744 pts/0 S+ 22:36 0:00 grep php-fpm

[root@xclinux vhosts]# vim /usr/local/php/etc/php-fpm.conf


[root@xclinux etc]# > php-fpm.conf 清空配置文件

root@xclinux vhosts]# vim /usr/local/php/etc/php-fpm.conf 可以设置多个pool
[global] ; pool 池
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
[www]
listen = /tmp/www.sock ;监听的sock或者IP+端口号
user = php-fpm
group = php-fpm
pm = dynamic ;动态的 使用static下面的pm配置不生效
pm.max_children = 50 ;子进程最多50个
pm.start_servers = 20 ; 开机启动20个子进程
pm.min_spare_servers = 5 ;空闲的时候最少保留5个进程
pm.max_spare_servers = 35 ;空闲的时候最多保留35个进程
pm.max_requests = 500 ;一个子进程生命周期内处理500个请求自动销毁
rlimit_files = 1024 ;每个进程使用使用文件描述符的限制


[www1]
listen = /tmp/www1.sock
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024


注意:注释使用;而不能使用#


说明:
a. [global] 部分是全局配置,指定了服务指定的pid文件和错误日志路径
b. [www] 是一个pool(池)www是池的名称,如果有多个池就把这段内容复制一份粘贴在下面,并根据池的名称,以及listen的路径
c. listen 监听的sock或者IP+端口号。
监听的sock文件,这里这个文件需要和nginx的虚拟主机里面指定的这个文件名对应起来,多个站点最好是多个pool使用不同的sock文件,和pool名称
d. user 管理服务的用户名
e. group 管理服务的用户组
f. pm 池的方式:分为动态和静态,dynamic是动态,如果是静态static的话,那么下方pm.start_servers = 20生效,其他的PM配置选项均不生效
g. pm.max_children 表示php-fpm最大可以启动多少个子进程
h. pm.start_servers 表示服务一开启就启动多少个进程
i. pm.min_spare_servers 表示当php-fpm空闲时最少保留子进程数量,如果空闲时进程不够,那么会自动创建。
j. pm.max_spare_servers 表示当php-fpm空闲时最多保留子进程数量,如果空闲时进程超过,那么会自动销毁。
k. pm.max_requests 表示一个子进程可以接授多少个请求,如是设置为500,那么一个子进程受理到500个以后就会自动销毁
l. rlimit_files 每个进程使用使用文件描述符的限制、表示每个进程可以访问的文件数量。这个标签的值必须和Linux内核打开文件数关联起来,例如要将此值设置为65535,就必须在Linux命令行执行'ulimit -HSn 65536'。(ulimit –n可以查看对应数值)


扩展:如果你的网站访问时间比较慢,我们可以通过在相对应的池里面加入下面两行:


slowlog = /tmp/www.slow.log
request_slowlog_timeout = 1
上面两行的意思是访问的时候会把执行脚本超过1秒脚本记录下来,方便我们排查到底是脚本问题还是哪里的问题,这里的时间可以调整


如果我们想限制使用这个pool的用户的访问目录我们可以加入下面这样一行:


php_admin_value open_basedir=/data/www/:/tmp/
上面不同的目录中间用:冒号分开




扩展:如果你的网站访问时间比较慢,我们可以通过在相对应的池里面加入下面两行:


slowlog = /tmp/www.slow.log
request_slowlog_timeout = 1
上面两行的意思是访问的时候会把执行脚本超过1秒脚本记录下来,方便我们排查到底是脚本问题还是哪里的问题,这里的时间可以调整


如果我们想限制使用这个pool的用户的访问目录我们可以加入下面这样一行:


php_admin_value open_basedir=/data/www/:/tmp/
上面不同的目录中间用:冒号分开


[root@xclinux ~]# /usr/local/php/sbin/php-fpm -t
[12-Jun-2016 01:21:38] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful
[root@xclinux ~]# /etc/init.d/php-fpm start
Starting php-fpm done


此时 ps aux|grep php-fpm 可以看到多个pool池进程 www和www1


好处:不同的域名对应不同的pool池,可以区分开权限。
www池发生故障时,不影响www1池运行。一个网站done掉,别的网站不会done。


[root@xclinux etc]# cd /usr/local/nginx/conf/vhosts/
You have new mail in /var/spool/mail/root
[root@xclinux vhosts]# ls
111.conf default.conf default.conf1.bak
[root@xclinux vhosts]# vim 111.conf
server
{
  listen 80 ;
  server_name www.111.com;
  index index.html index.htm index.php;
  root /data/www;


  location ~ \.php$ {
  include fastcgi_params;
  fastcgi_pass unix:/tmp/www.sock;
  #fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;


}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值