背景

     在對啟動了20個worker的nginx進行壓力測試的時候發(fā)現(xiàn):如果把配置文件中event配置塊中的accept_mutex開關(guān)打開(1.11.3版本之前默認開),就會出現(xiàn)worker壓力不均,少量的worker的cpu利用率達到了98%,大部分的worker的壓力只有1%左右;如果把accept_mutex關(guān)掉,所有的worker的壓力差別就不大,而且QPS會有大幅提升;

 

分析過程

  1. nginx的 1(master)+N(worker) 多進程模型:master在啟動過程中負責讀取nginx.conf中配置的監(jiān)聽端口,然后加入到一個cycle->listening數(shù)組中。

  2. init_cycle函數(shù)中會調(diào)用init_module函數(shù),init_module函數(shù)會調(diào)用所有注冊模塊的module_init函數(shù)完成相關(guān)模塊所需資源的申請以及其他一些工作;其中event模塊的module_init函數(shù)申請一塊共享內(nèi)存用于存儲accept_mutex鎖信息以及連接數(shù)信息

      延伸閱讀

      學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設(shè)計培訓,網(wǎng)站建設(shè)培訓學習是年輕人改變自己的最好方式

      我想了解如何學習

      姓名:
      手機:
      留言: