百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> 理解php-fpm中max_children的配置
分享文章到:

理解php-fpm中max_children的配置

发布时间:09/01 来源:未知 浏览: 关键词:

此刻nginx + fpm 根本成为主流的配置,其中我们比力关注的是pm.max_chindren的配置

第一,我们关注一个设定: pm = static/dynamic。

相关学习引荐:PHP编程从入门到熟知

这个选项是标识fpm子进程的发生模式:

static :表示在fpm运转时直接fork出pm.max_chindren个worker进程

dynamic:表示,运转时fork出start_servers个进程,随着负载的状况,动态的调整,最多不超越max_children个进程。

一样引荐用static,长处是不消动态的推断负载状况,晋升机能,缺陷是多占用些系统内存资源。

上面的告诉我们max_chindren代表的worker的进程数。遍及认为,这个配置越多能同时处置的并发也就越多,这是一个比力大的误区:

  • 1) 其实进程多了,增添进程切换的开销,更中心的是,能并发施行的fpm进程不会超越cpu个数。通过多开worker的个数来晋升qps, 是错误的懂得,不会说你多开了几个进程,就多出几个cpu来处置。
  • 2) worker进程开少了,假如server比力忙碌的话,会导到nginx把数据打到fpm的时候,发明所有的woker都在工作中,没有余暇的worker来接受恳求,从而致使502。
  • 3) 在实际业务中,由于我们有许多的i/o操纵,比方读取数据库,或者内部rpc调取这类在等候i/o的历程中,进程会被系统sleep, 而不占用cpu,假如配置worker少了,也会致使cpu利用不上

那worker数到底该如何配置呢?

理论上woker进程数=cpu的个数是最合理的,但由于第2点,大概每个worker都没处置完恳求,这样,就会频现502了。但多开进程,只是说幸免502,临时把恳求hang住,但这只是缓解之道,实际上这不单不会增添系统的并发,并且会加重系统的负荷,所以,基于2,3 ,设定一个合理的worker数就比力重要了。

世界武功,唯快不破,只要尽大概的晋升程序的效力,把单个恳求的时间紧缩到最低,这样,单个worker的处置时间变短了,那在单位时间里能处置的恳求天然就多了。

那么可以通过每个worker在单位时间内处置的恳求数来预估max_children的个数。假设最大的一个恳求的处置时间(xhprof里看cpu时间)是100ms内,而在100ms之内同时有100个恳求过来,那了理论上就需要配置100个worker进程,先把恳求给hang住。

但最大的恳求耗时大概会受许多外在的状况影响,不太好预估,特别是网络i/o也算在里面,我们可以借用第三方的profile工具,比方xhprof, 这类工具可以统计cpu的耗时,通过这个时间来运算真正的worker数目,比总时间来运算要合理许多,其实这里有一个捷径,来配置你的max_children数, 就是你前期先把max_childnren设定成一个比力大的值,不乱运转一段时间后,视察fpm的status里的 max active processes 是多少,然后把max_children配置比他大一些就ok了。

以上就是理解php-fpm中max_children的配置的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板