1、php-fpm.conf中的pm
pm是来控制php-fpm的工作进程数到底是一次性产生固定不变(static)还是在运行过程中随着需要动态变化(dynamic)。众所周知,工作 进程数与服务器性能息息相关,太少则不能及时处理请求,太多则会占用内存过大而拖慢系统。因为php-fpm处理请求时会随着处理的请求数的增加而占用越 来越多的内存,所以static模式下往往不好判断启动的能使内存利用最大化的固定进程数,所以想到了dynamic模式。可是为什么我们不用 dynamic模式呢,试想某个时刻请求数比较低,20个进程足够应付,突然压力增大了,出现了40个并发PHP请求,按照最小5个空闲进程的设置就需要 45个进程,也就是说需要在短时间内创建出25个进程,我们知道创建进程的操作是比较消耗系统资源的,再加上40个并发PHP请求肯定也会给MySQL带 来一定的压力,此时再创建25个进程无疑是雪上加霜,所以我在这里还是选择了static模式。

2、php-fpm.conf中的pm.max_requests
根据说明我们知道这个参数的含义是php-fpm工作进程处理完多少请求后自动重启,主要目的就是为了控制请求处理过程中的内存溢出,使得内存占用在一个 可接受的范围内。从这里我们感觉这个数字似乎设置的小一点更加有利于性能提升,但是当这个数字非常小的时候会发生一种情况,由于PHP请求是平均地分配给 各个工作进程的,如果这个值太小就会导致所有的工作进程几乎同时达到这个值并且进入需要重启的状态,当所有的工作进程都在同一时刻重启就会发生在数秒内甚 至更长的时间PHP将停止响应直到所有的进程均重启完为止。这是不能接受的,所以我一般会把这个值设置为PHP启动后第一批工作进程达到此值需要重启时, 第一个进程重启与最后一个进程重启之间的时间相差1分钟以上,一般在压力比较大的晚上这个差值将会扩大到5分钟左右,此时对进程重启对服务器的负面影响就 可以忽略了。

3、php.ini中的memory_limit
顾名思义,这个值是用来限制PHP所占用的内存的,具体一点说就是一个PHP工作进程即php-fpm所能够使用的最大内存,默认是128MB,一开始在 虚拟机中我设置为PHP 5.1.6的默认值16MB,发现大于16MB的附件将无法下载,也就是说PHP 5.3中附件是从硬盘完整读取到PHP内存中再传给nginx的,这跟PHP 5.1.6+Apache 2.2.3不同,后者读取附件是PHP并不加载这个附件而是直接交给Apache来加载,这就使得php-fpm占用内存大了不少。当php-fpm占用 内存达到了memory_limit所限制的值时,当前进程会被fpm主进程使用TERM信号终止掉,此时被处理的PHP请求将返回客户端502错 误,nginx的error log中将记录出错原因是“Connection reset by peer”。可是更加令人难以理解的事情发生了,在使用了eAccelerator的PHP 5.3上,居然发生了当php-fpm内存达到memory_limit所限制的值时,所有进程都开始疯狂重启而不再接受任何请求,此时除非使用kill 命令杀死主进程,否则php-fpm永远都不会恢复响应,可想而知nginx必然出现无止境的502错误了。。。

转载于:https://www.cnblogs.com/agang-php/p/5109739.html

PHP的pm、pm.max_requests、memory_limit相关推荐

  1. 计算机pm,PM、PMP、PMO分别都是什么 以及三者的关系

    有很多人都对相关管理的一些词比较容易混淆,其中较为明显的就是PM.PMP.PMO. 首先,PM大家都知道就是项目管理. PMP呢,PMP其实就是项目管理专业人士资格认证,也就是PMP认证,是一个严格评 ...

  2. SAP PM 设备维护事务码收集整理

    SAP PM 设备维护事务码收集整理,留存备查,总有一款适合你 . 事务码 描述 IBI2 Plant Maintenance Batch Input 设备维护批输入 IBIP PM: Batch I ...

  3. RT-Thread进阶之低功耗PM组件应用笔记

    电源管理组件 嵌入式系统低功耗管理的目的在于满足用户对性能需求的前提下,尽可能降低系统能耗以延长设备待机时间.高性能与有限的电池能量在嵌入式系统中矛盾最为突出,硬件低功耗设计与软件低功耗管理的联合应用 ...

  4. android app安装的过程,Pm install App流程

    adb安装应用 应用安装涉及目录: system/app ---------------系统自带的应用程序,获得adb root权限才能删除data/app  ---------------用户程序安 ...

  5. android pm命令不可用,adb命令pm工具讲解

    在开发中,使用AS工具,点击运行安装在测试机上.会看到Logcat上打印好多东西.我无意间发现了一段这样的话. 05/23 09:30:43: Launching app adb推送apk到手机dat ...

  6. java am pm_java-在日期格式化后以小写形式显示AM和PM

    java-在日期格式化后以小写形式显示AM和PM 格式化日期时间后,时间以大写形式显示AM或PM,但我希望以小写形式显示,例如am或pm. 这是我的代码: public class Timeis { ...

  7. Android SDK: adb shell 命令的使用(am、pm、wm、screencap、monkey等)

    本文链接: https://blog.csdn.net/xietansheng/article/details/86675136 adb其他命令介绍详见上一篇: Android SDK: adb 常用 ...

  8. php大负荷,web大负载优化收集------php-fpm参数优化

    1.php-fpm.conf中的pm pm是来控制php-fpm的工作进程数到底是一次性产生固定不变(static)还是在运行过程中随着需要动态变化(dynamic).众所周知,工作进程数与服务器性能 ...

  9. Pass Infrastructure基础架构(下)

    Pass Infrastructure基础架构(下) pass注册 PassRegistration该类在示例中简要显示了各种pass类型的定义 .该机制允许注册pass类,以便可以在文本pass管道 ...

最新文章

  1. mysql 5.5.修改库名_安全快速修改Mysql数据库名的5种方法
  2. 【C 语言】指针数据类型 ( 野指针 | 避免野指针推荐方案 )
  3. [性能] SAP销售订单取数逻辑优化---索引表
  4. 实现option上下移动_ES6原生实战Uploader工具类(从设计到实现)
  5. SpringMVC的json数据交互
  6. tkinter message_【莫烦Python】Tkinter 做简单的窗口视窗lt;学习笔记(2)gt;
  7. Unable to update index for central|http://repo1.maven.org/maven2
  8. T 沙龙 2018 年 1 月上海第 10 次线下活动总结
  9. mysql ocp考试准备多久_MySQL OCP考试复习系列--开篇:了解MySQL考试
  10. 游戏动作3d模型素材推荐 精品 小众
  11. Java后台生成NO2016012701(代码+年月日+流水号)这样的流水编号
  12. 点云学习笔记16——pcl点云可视化
  13. SilverLight:布局(2)GridSplitter(网格分割)垂直分割、水平分割
  14. python中文词云图代码_python词云图与中文分词
  15. java集合示例_Java集合的addAll()方法和示例
  16. 让你飞速成长的18个故事
  17. 使用mybatis plus批量插入数据
  18. 阿里云最新高校计划,通过学生认证的可以免费领取几个月的服务器
  19. 点击图片放大全屏加载,再次点击图片/文档回到原来位置
  20. 基于Java的电影订票网站的设计与实现

热门文章

  1. labview在2048中添加时间滚动条_Chrome优化深色模式:滚动条颜色也能跟随变化 使上网更具沉浸感...
  2. java 变量锁_并发编程高频面试题:可重入锁+线程池+内存模型等(含答案)
  3. https证书pfx 生成 pem,crt,key
  4. NodeMailer
  5. $动态规划系列(2)——找零钱问题
  6. 3.3、自定义错误页面
  7. 万事开头难,用HTML写的第一个界面,收获颇多
  8. 【转】Xcode 7 真机调试详细步骤
  9. 做移动端视频通话软件,大致看了下现有的开源软件(转)
  10. ASP.NET 2.0中将 GridView 导出到 Excel 文件中