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;

}

}

php5.6之php-fpm优化相关推荐

  1. Nginx优化与防盗链(隐藏版本号、配置缓存时间、日志分割、修改进程数、配置连接超时、使用gzip压缩页面、防盗链设置,fpm优化)

    文章目录 隐藏Nginx版本号 网页压缩 网页压缩配置 网页缓存时间 网页缓存时间设置 更改Nginx运行进程数 连接超时 nginx防盗链设置 盗链网站 配置httpd 日志分割 fpm参数优化 隐 ...

  2. php fpm 优化502,Nginx+PHP-FPM环境访问网站出现502错误的优化方法 - Nginx - 数安时代(GDCA)SSL证书官网...

    游戏后端代码采用Nginx+PHP-FPM的方式部署.放问游戏的时候偶尔会出现502错误. Nginx错误日志出现以下日志 2014/07/05 17:20:58 [error] 18431#0: * ...

  3. php5.3+for+linux,Centos 安装 nginx + php5.3

    Centos 安装 nginx + php5.3,点开查看详情. #查看系统版本信息cat /etc/issue uname -a#设置时区 rm -rf /etc/localtime ln -s / ...

  4. Web服务器Nginx企业级优化

    部署Nginx软件 1)安装支持软件: Nginx的配置及运行需要pcre.zlib等软件包的支持,因此应预先安装这些软件的开发包(devel),以便提供相应的库和头文件,确保Nginx的安装顺利完成 ...

  5. LNMP nginx1.4.6+php5.5.11+mysql5.6.17+mecache+opcache编译安装+opcache参数详解+opcache可视化php页面代码

    可能要用到的软件: libiconv-1.13.tar.gz  libmcrypt-2.5.8.tar.gz  mcrypt-2.6.8.tar.gz  mhash-0.9.9.9.tar.gz  m ...

  6. Ubuntu14.04 64bit 编译安装nginx1.7+php5.4+mysql5.6

    我的操作系统是Ubuntu14.04,其它linux系统的操作流程类似. 主要安装的软件是nginx1.7+php5.4+mysql5.6 1. 创建必要目录 sudo mkdir ~/setup s ...

  7. CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28

    2019独角兽企业重金招聘Python工程师标准>>> [准备工作] 01 #在编译安装lnmp之前,首先先卸载已存在的rpm包. 02 rpm -e httpd 03 rpm -e ...

  8. Centos6.4 + PHP5.5.11 + Mysql5.6.16 + Tnginx2.02 + Memcached1.4.17 + Redis2.2

    /** author: 老炮 date: 2014/5/10 */ Centos6.4 + PHP5.5.11 + Mysql5.6.16 + Tnginx2.02 + Memcached1.4.17 ...

  9. centos6.8下安装部署LNMP(备注:nginx1.8.0+php5.6.10+mysql5.6.12)

    在平时运维工作中,经常需要用到LNMP应用框架. 以下对LNMP环境部署记录下: 1)前期准备:为了安装顺利,建议先使用yum安装依赖库 [root@opd ~]#yum install -y mak ...

  10. linux php 升级5.3,Linux php5.2.10升级到PHP5.3.29

    成都这边的程序员要求把PHP从5.2.10版本升级到5.3.29版本. #cd /Data/App_php/ #wget http://cn2.php.net/get/php-5.3.29.tar.g ...

最新文章

  1. 中国黑客自揭黑色产业链条:做病毒一定要低调
  2. HDU 3874 Necklace (数状数组)
  3. research meeting updates points
  4. 缓存与数据库的一致性:先操作缓存还是先操作数据库?
  5. mongoengine 学习 笔记
  6. Day11名称空间,作用域,闭包函数
  7. ubuntu安装注意事项:
  8. 2010 模板下载 罗斯文_选择并使用 Access 模板
  9. Matlab遗传算法大纲
  10. 自动阅读专业版第九次更新---原薅羊毛专业版
  11. 春运火车票抢票浏览器强力推荐,秒抢车票到手
  12. 4 个方法养成大神级 “反内耗“ 体质
  13. ListView的增删改查(实战)
  14. 苏州驾考科目三考试攻略
  15. PO(PageObject)模型
  16. The pylance server crashed 5 times in the last 3 minutes
  17. 论文解读:PF磷酸:基于机器学习的磷酸化位点预测疟原虫蛋白的工具
  18. python中用来计算集合并集的是_Python集合(set)并集
  19. 《牛奶可乐经济学》---成本效益原则
  20. android 调用系统播放器播放视频,适配android 7.0以上

热门文章

  1. HDFS写文件过程分析
  2. Flutter组件ListView
  3. python123子字符串输出_获得用户输入的一个字符串,替换其中出现的字符串py为python”,输出替换后的字符串。...
  4. PAT甲级 1091 Acute Stroke
  5. 联发科射频工程师题目_华为,中兴射频微波类笔试题
  6. Android开发基础之控件CheckBox
  7. PASCAL VOC数据集训练集、验证集、测试集的划分和提取,得到test.txt、train.txt、trainval.txt、val.txt文件代码
  8. Cannot find module ‘@babel/compat-data/corejs3-shipped-proposals‘
  9. dw更改外接样式表html,dw如何单独改字体颜色 DW怎么修改单个链接文字颜色?
  10. 学习记录677@项目管理之配置管理案例