• “德国战车”成了“老爷车”? 卫冕前景令人担忧 2019-09-16
  • 比iPad更白菜价:给自己个喜新厌旧换平板的理由 2019-09-09
  • 网友建言——黄河新闻网 2019-09-07
  • 打造时尚达人般的理想生活-热门标签-华商网数码 2019-09-06
  • “爸爸是交警”刷屏朋友圈  我用各种姿势陪你 2019-09-02
  • 马克思主义通过指导无产阶级革命建立起部分社会财富公有制而改变了人类历史发展进程,离开部分社会财富公有制的建立来谈“改变人类历史发展进程”纯粹是无稽之谈。 2019-09-02
  • 谌龙,男羽的大旗你不扛也得扛 2019-08-31
  • [酷]此文已经把马克思理论、边际理论、人类需求层次理论、生物学理论、心理学理论、社会管理学理论等理论在哲学层面完美融合了! 2019-08-31
  • 凤凰网旅游发布大风号政府旅游影响力榜单(2018年5月) 2019-08-30
  • 中国动力电池市场竞争加剧 70家公司仅占3成份额 2019-08-30
  • 端午节假期间全国道路交通平稳有序 2019-08-29
  • 你把我抱紧 我帮你扶伞 2019-08-17
  • 榕城监狱及时调解服刑人员家属建房纠纷 2019-08-15
  • 市委把全国两会精神原汁原味传达到基层 2019-08-15
  • 大同能源革命跑出发展“加速度” 2019-08-14
  • 大乐透近100期走势图表:php-fpm中max_children的配置

    文章TAG:PHP 配置 fpm max_children
    时间:2019-03-15来源/作者:CODETC 编辑:源码库 文章热度:

    山西十一选五遗漏10 www.fqjb.net 现在nginx + fpm 基本成为主流的配置,其中我们比较关注的是pm.max_chindren的配置

    首先,我们关注一个设置: pm = static/dynamic,

    这个选项是标识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了。

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ASPKU源码库的支持。


    注:相关教程知识阅读请移步到PHP教程频道。
    相关PHP教程
    热门标签

    PHP教程Rss订阅PHP教程搜索

  • “德国战车”成了“老爷车”? 卫冕前景令人担忧 2019-09-16
  • 比iPad更白菜价:给自己个喜新厌旧换平板的理由 2019-09-09
  • 网友建言——黄河新闻网 2019-09-07
  • 打造时尚达人般的理想生活-热门标签-华商网数码 2019-09-06
  • “爸爸是交警”刷屏朋友圈  我用各种姿势陪你 2019-09-02
  • 马克思主义通过指导无产阶级革命建立起部分社会财富公有制而改变了人类历史发展进程,离开部分社会财富公有制的建立来谈“改变人类历史发展进程”纯粹是无稽之谈。 2019-09-02
  • 谌龙,男羽的大旗你不扛也得扛 2019-08-31
  • [酷]此文已经把马克思理论、边际理论、人类需求层次理论、生物学理论、心理学理论、社会管理学理论等理论在哲学层面完美融合了! 2019-08-31
  • 凤凰网旅游发布大风号政府旅游影响力榜单(2018年5月) 2019-08-30
  • 中国动力电池市场竞争加剧 70家公司仅占3成份额 2019-08-30
  • 端午节假期间全国道路交通平稳有序 2019-08-29
  • 你把我抱紧 我帮你扶伞 2019-08-17
  • 榕城监狱及时调解服刑人员家属建房纠纷 2019-08-15
  • 市委把全国两会精神原汁原味传达到基层 2019-08-15
  • 大同能源革命跑出发展“加速度” 2019-08-14
  • 网上比较靠谱的挣钱软件 快速赛车开奖官网结果 河北二十选五复式规则 陕西快乐10分推荐号码 pk10开奖 一码中特死公式 福建体彩36选7今天开奖 二肖中特期期精准资料 体育新闻新浪 福建快三基本走势图百度 二分彩计划 极速时时彩开奖结 八禁真人的在线观看 皇冠比分190bp踢球 3d300期走势图