之前发现nginx的进程在任务分配方面非常的不平均,即某个进程一旦忙起来会忙很久,而空闲的线程却一直空闲,跟下代码发现epoll_wait中默认的timer是500ms(没有任务的情况下),可以通过减少accept_mutex_delay这个参数让空闲的进程有更大的机会抢到accept锁,从而使任务更加平均的分配,至于对效率的影响,需要测试才能知道。
成都创新互联主营皮山网站建设的网络公司,主营网站建设方案,App定制开发,皮山h5重庆小程序开发公司搭建,皮山网站营销推广欢迎皮山等地区企业咨询worker process如果想要抢锁,就必须从epoll_wait中醒过来才可以走循环流程,然后走到抢锁的地方才有机会抢,而一旦worker process抢到了accept锁,任务比较多的情况下,epoll_wait会被频繁激活,导致抢锁的机会大大增加,而空闲的进程500ms才去尝试一次抢accept锁,所以请求量越大,空闲进程抢到锁的可能性就越小.
抢锁流程:
1、抢锁
2、把listen fd加入epoll事件
3、解锁(如果不解锁,那其他进程永远没有机会再accept了)
accept_mutex_delay
含义:设置获得互斥锁的最少延迟时间。
语法:accpet_mutex_delay
缺省:500ms
示例:accpet_mutex_delay 1000ms;
附件:http://down.51cto.com/data/2367950另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页标题:小谈accpet_mutex_delay参数-创新互联
浏览路径:http://scgulin.cn/article/ppjog.html