位置: 编程技术 - 正文

基于PHP-FPM进程池探秘(php fpm原理)

编辑:rootadmin

推荐整理分享基于PHP-FPM进程池探秘(php fpm原理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php fpm原理,php fpm的工作原理,php-fpm cgi,php fpm的工作原理,php fpm原理,php fpm原理,php fpm的工作原理,phpfpm到php的工作原理,内容如对您有帮助,希望把文章链接给更多的朋友!

PHP 支持多进程而不支持多线程;PHP-FPM 在进程池中运行多个子进程并发处理所有连接请求。通过 ps 查看PHP-FPM进程池(pm.start_servers = 2)状态如下:

从列表中可以看出,进程池www中有两个尚处于空闲状态的子进程PID 8和 PID 9。注:NLWP指轻量级进程数量,即线程数量。

PHP-FPM(FastCGI Process Manager)是什么?PHP-FPM为PHP-CGI提供进程管理方式,可以有效控制内存和进程,可以平滑重载PHP配置,其master process是常驻内存的。FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中更长时间,不是fork-and-execute,并因此获得较高的性能。FastCGI支持分布式部署,可以部署在WEB服务器以外的多个主机上。

探秘手段:模拟多线程并发执行

1. 什么是线程:线程有时又称轻量级进程(Lightweight Process,LWP),通常由线程ID、当前指令指针(PC)、寄存器集合和堆栈组成,是进程中的一个实体,是被系统独立调度的基本单位;线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,与同属一个进程的其它线程共享进程所拥有的全部资源。 由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。由于进程是资源拥有者,创建、撤消与切换开销过大,在对称多处理机(SMP)上同时运行多个线程(Threads)才是更合适的选择。线程的实体包括程序、数据和线程控制块(Thread Control Block,TCB),TCB包括以下信息:

(1)线程状态;

(2)当线程不运行时,被保存的现场资源;

(3)一组执行堆栈;

(4)存放每个线程的局部变量主存;

(5)访问同一个进程中的主存和其它资源。

但使用多个进程会使得应用程序在出现进程池内的进程崩溃或被攻击的情况下变得更加健壮。

2. 模拟多线程:

探秘汇总:本人通过运行上述脚本后,发现一些可预料但却不是我曾想到的结果

1. PHP-FPM配置项pm.max_children = 5,simulated.thread记录如下:

最新生成的(模拟)线程登记出现在红色标示条目位置是因为进程池的并发连接处理能力上限为5,因此它只可能出现在第六条以后的位置。

有意思的是绿色条目代表的(模拟)线程和红色条目代表的(模拟)线程的登记时间是一样的,说明两个(模拟)线程是并发执行的。

基于PHP-FPM进程池探秘(php fpm原理)

2. PHP-FPM配置项pm.max_children = ,simulated.thread记录如下:

由于服务端并发连接处理能力上限达到,因此最新生成的(模拟)线程登记可出现在任何位置。

3. 执行usleep()延迟,simulated.thread记录如下:

可见日志记录顺序与(模拟)线程生成的顺序一致。usleep延迟的基本单位是微妙(us, 1 s = us)。

从以上的记录可以看出:

1)这些(模拟)线程是第一次请求执行脚本后就自动生成的,一个(模拟)线程紧接着创建了另一个(模拟)线程;

2)这些(模拟)线程中有的是在同一个子进程空间中产生并运行的;

3)前后相邻(模拟)线程生成时间间隔很小,几乎是同时产生,或后一个(模拟)线程在前一个(模拟)线程尚未执行结束并退出之前产生;

4)多个(模拟)线程之间可以并发执行。

所以,上述模拟多线程并发的实现是成功的。PHP-FPM进程池中同一个子进程可先后处理多个连接请求,但同一时间只能处理一个连接请求,未处理连接请求将进入队列等待处理。换句话,同一个子进程不具有并发处理连接请求的能力。

PHP-FPM Pool配置:它允许定义多个池,每个池可定义不同的配置项。以下只是列举了我在探秘过程中还关注过的其他部分配置项

1、 listen:The address on which to accept FastCGI requests.它支持TCP Socket和unix socket两种通讯协议。可设置listen = [::]:。

2、listen.allowed_clients:List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. 该配置项为逗号分隔的列表,如listen.allowed_clients = .0.0.1,..0.5。

3、pm:Choose how the process manager will control the number of child processes. 该配置项设置FPM管理进程池的方式,包括static、dynamic、ondemand三种。

4、pm.max_requests:The number of requests each child process should execute before respawning. This can be useful to work around memory leaks in 3rd party libraries.设置每个子进程处理请求数的上限,对于处理第三方库中的内存泄漏很有用。

5、pm.status_path:The URI to view the FPM status page.

以上这篇基于PHP-FPM进程池探秘就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

php 数据结构之链表队列 php链表队列实例代码:classQueue{private$last;private$first;private$oldfirst;privatestatic$n=0;publicfunction__construct(){$this-last=null;$this-first=null;$this-oldfirst=null;}publicfunctionp

php 二维数组快速排序算法的实现代码 php二维数组快速排序算法的实现代码二维数组排序算法与一维数组排序算法基本理论都是一样,都是通过比较把小的值放在左变的数组里,大的值放在

php 算法之实现相对路径的实例 php算法之实现相对路径的实例算出相对路径(相同的目录可以忽略用../或者./表示)实现代码:classRelatively{privatefunction__construct(){}/***算出相对路径(相

标签: php fpm原理

本文链接地址:https://www.jiuchutong.com/biancheng/288278.html 转载请保留说明!

上一篇:php封装单文件上传到数据库(路径)(php封包)

下一篇:php 数据结构之链表队列(php的数据结构)

  • 税收滞纳金还会计算滞纳金吗
  • 土地增值税与增值税
  • 延期缴纳税款是纳税争议吗
  • 股份有限公司董事会决议必须经过
  • 个体户收现金可以开发票吗
  • 出售未计提完折旧的固定资产
  • 汽车牌照费用标准
  • 税控盘丢失需要罚款吗
  • 个人所得税专项扣除子女教育标准
  • 民办非企业单位属于什么类型
  • 账务处理和税前扣除如何处理
  • 外汇结汇的方法有哪些呢?
  • 冲销估价入账
  • 销项进项怎么转化
  • 工会账户销户划拨流程
  • 公司预存话费应该怎么做会计处理?
  • 应交增值税进项税额月底怎么处理
  • 什么公司不需要融资
  • 企业所得税固定资产一次性扣除
  • 应交税费应交堤围费的税率多少?
  • 案例分析个人心得体会
  • 收购粮食怎么做账
  • 招商引资政府返税政策不兑现
  • 二手房产增值税率
  • 公司贷款评估费的做账
  • 注销未分配利润怎么处理账务
  • 社保公积金外包对员工的利弊
  • 预计毛利率
  • 退税应纳税所得额4万交税多少
  • 如何免费获取Win11企业版
  • .exe文件怎么打不开
  • 基本户被冻结了一般户可以发工资吗
  • vue使用方法
  • quickdcf.exe - quickdcf是什么进程 作用是什么
  • php -m
  • ecshop怎么用
  • 房屋租赁进项税
  • 360safe删除不了怎么办
  • mac的快捷键在哪
  • PHP:Memcached::decrement()的用法_Memcached类
  • PHP:stream_set_chunk_size()的用法_Stream函数
  • 对公账户收款
  • fsck是什么文件
  • 缅甸安达曼海
  • 后端怎么把图片传给前端的
  • 购买农产品没有发票入帐怎么办
  • 发放工资时扣除的保险怎么做
  • IDEA 2022专业版创建Java Web项目(保姆式小白讲义,强烈建议入手!)
  • 35.JavaScript对象和数组的解构赋值基础详解、let陷阱、函数参数解构
  • 无形资产法
  • 利息收入交所得税吗
  • 材料暂估入库如何进行账务处理
  • 季度申报所得税时可以用以前年度亏损吗
  • 递延收益期限
  • 深入解读何暮楚
  • 股东分红的会计分录怎么做
  • 补交土地税要交多少钱
  • 工地上购买的零食叫什么
  • 固定资产本期增加怎么算
  • 红冲上月发票都附什么附件
  • 修理费用的会计怎么做账
  • 餐费计入哪个科目合理避税
  • 研发费用的会计处理对公司经营成果的影响
  • 利润率多少算好
  • 会计年终决算怎么填写
  • 联想Thinkpad怎么进入安全模式
  • centos锁定屏幕命令
  • 如何关闭windows更新
  • centos vncviewer
  • win2008怎么查看隐藏文件
  • zlib是什么意思
  • win8隐藏的文件夹怎么找出来
  • 猫的猫的视频
  • cmd切换到当前目录
  • 基于python的
  • js计算字体宽度
  • node使用
  • 税务关系转移社保怎么办理
  • 小规模年度财务报表
  • 安徽省历任书记
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设