在优化PHP的进程数的时候我们首先要了解我们服务器执行一个php使用的内存

1: 查询一个php占用的内存方法

pmap $(pgrep php-fpm | head -1)

我这里查询到的是

00002ba5d0bec000      4K rw-s-  /dev/zero (deleted)

00002ba5d0bed000      4K rw-s-  /dev/zero (deleted)

00007fffc568b000     80K rwx--    [ stack ]

00007fffc569f000      4K rw---    [ anon ]

00007fffc57fd000     12K r-x--    [ anon ]

ffffffffff600000   8192K -----    [ anon ]

total           309548K

大概30MB的样子

我本身机器内存是32G,那么理论上计算最大能承受php的并发是 32G/30MB=1092个

那么如果除去系统跟其他软件的使用内存大概算900个

2 :php-fpm的配置公式:pm.start_servers = min_spare_servers + (max_spare_servers - min_spare_servers) / 2

pm.max_children的计算方法,本机内存/30兆每个为最大的限定值再适当减小
相关参数解读:
pm.max_children:静态方式下开启的php-fpm进程数量。
pm.start_servers:动态方式下的起始php-fpm进程数量。
pm.min_spare_servers:动态方式下的最小php-fpm进程数量。
pm.max_spare_servers:动态方式下的最大php-fpm进程数量。
针对我的服务器情况调整这几个值为(当然我这边是集群所以我启动300个已经足够了):
pm.max_children = 300
pm.start_servers = 155
pm.min_spare_servers = 10
pm.max_spare_servers = 300

###################################################

(备注:如果不按这个公式计算做配置多多少少会出现写问题,比如

seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 34 total children    (这个很明显是要你调节进程数)

child 1616 exited with code 0 after 619688.718148 seconds from start  (一下三个好像都是提示执行超时)

child 14636 exited on signal 15 (SIGTERM) after 269249.100189 seconds from star

request: "POST /test.php") execution timed out (198.776247 sec), terminating

等等类似的报错

如果是ngixn做的前端代理会出现当后端服务器出现类似问题就会连接失败提示没在线的主机等等情况

no live upstreams while connecting to upstream, client

####################################################

转自

PHP fpm优化 - 信不信由你 - 51CTO技术博客
http://312461613.blog.51cto.com/965442/1559672/

PHP fpm优化【转】的更多相关文章

  1. 对FPM 模块进行参数优化!

    Nginx 的 PHP 解析功能实现如果是交由 FPM 处理的,为了提高 PHP 的处理速度,可对FPM 模块进行参数跳转.FPM 优化参数:pm 使用哪种方式启动 fpm 进程,可以说 static ...

  2. The server of Nginx(三)——Nginx企业级优化

    相信看过我之前apache文章的朋友们,对服务优化也有了一个大概的了解,相比较而言,Nginx企业中应用的更多一些,因此今天也会详细阐述Nginx的优化,有人说,服务器不需要优化,开虚拟化,分分钟成倍 ...

  3. Nginx企业级优化

    Nginx企业级优化 一.隐藏版本号信息 安装软件前修改,源码包中的版本信息 #切换到源码包目录[root@localhost ~]# cd /usr/src/nginx-1.15.9/[root@l ...

  4. PHP 优化之php -fpm 进程

    一,php-fpm的启动参数 1 2 3 4 5 6 7 8 9 10 11 12 13 #测试php-fpm配置 /usr/local/php/sbin/php-fpm -t /usr/local/ ...

  5. PHP fpm配置和优化

    pm.max_children = 1024 #最大子进程数 maximum number of child processes when pm is set to 'dynamic' or 'ond ...

  6. 实战Nginx与PHP(FastCGI)的安装、配置与优化

    一.什么是 FastCGIFastCGI是一个可伸缩地.高速地在HTTP server和动态脚本语言间通信的接口.多数流行的HTTP server都支持FastCGI,包括Apache.Nginx和l ...

  7. [Linux主机] 优化你的php-fpm(php5.3+)让你的网站跑得更快

    从php5.3以后php自带了php-fpm不是和php5.2一样以插件的方式存在了.这给我们带来一个好处502没有那么容易出现了坛子里用linux的绝大多数应该还是在用小军的lnmp的那个包,但是配 ...

  8. 深度优化LNMP

    优化前准备工作 Centos准备及配置 准备安装包及软件:http://pan.baidu.com/s/1chHQF  下载解压到U盘即可安装http://pan.baidu.com/s/15TUWf ...

  9. PLSQL_性能优化系列01_Oracle Index索引

    2014-06-01 Created By BaoXinjian

随机推荐

  1. sublime从官网纯净版到插件完整版

    01.纯净版下载地址:www.sublimetext.com/ 02.下载Package Control插件管理工具,网址:https://packagecontrol.io/ 安装介绍:https: ...

  2. Javascript获取不重复的随机数值

    /** * 获取不重复随机数 * @param integer start 随机数最小值 * @param integer end 随机数最大值 * @param integer size 随机数获取 ...

  3. 《JS权威指南学习总结--9.1 类和模板》

    内容要点: 一.JS类 在JS中,类的所有实例对象都从同一个原型对象上继承属性.因此,原型对象是类的核心.在例6.1 原型中定义了inherit()函数(通过原型继承创建一个新对象),这个函数返回一个 ...

  4. jQuery复习:第五章

    一.表单应用 1.表单验证: 首先创建一个表单: <form method="post" action=""> <div class=&quo ...

  5. IE中float元素如果同时设置了margin值,此时margin的值会变为双倍的解决方法

    IE中float元素如果同时设置了margin值,此时margin的值会变为双倍, 解决办法: 是在该元素中加入display:inline.

  6. Python处理Excel(转载)

    1. Python 操作 Excel 的函数库 我主要尝试了 3 种读写 Excel 的方法: 1> xlrd, xlwt, xlutils: 这三个库的好处是不需要其它支持,在任何操作系统上都 ...

  7. C++ 内存分析-valgrind

    valgrind包括了以下几个比较重要的模块:memcheck, cachegrind, callgrind, helgrind, drd, massif, dhat, sgcheck, bbv. 还 ...

  8. Entity Framework Code First -- Migrations 迁移

    在开始使用迁移(Migrations)之前,我们需要一个 Project 和一个 Code First Model, 对于本文将使用典型的 Blog 和 Post 模型 创建一个新的控制台应用程序 M ...

  9. Spring contextConfigLocation默认加载文件的位置

    在使用Spring框架的时候,如果我们使用的是XML文件配置Bean的方式的话,我们往往会在web.xml里面配置如下内容: <context-param> <param-name& ...

  10. JS 之完美运动框架 如何同时改变元素多个属性?

    正如改变一个属性的方法,可以使用已经写好的运动函数如move(obj,attr,target,fn);我们可能会想这样做, 调用两次运动函数,如同时改变宽和高,move(obj,'width',tar ...