码迷,mamicode.com
首页 > 其他好文 > 详细

小谈 accpet_mutex_delay 参数

时间:2016-07-21 20:01:42      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:process   影响   可能性   listen   

之前发现nginx的进程在任务分配方面非常的不平均,即某个进程一旦忙起来会忙很久,而空闲的线程却一直空闲,跟下代码发现epoll_wait中默认的timer是500ms(没有任务的情况下),可以通过减少accept_mutex_delay这个参数让空闲的进程有更大的机会抢到accept锁,从而使任务更加平均的分配,至于对效率的影响,需要测试才能知道。


worker process如果想要抢锁,就必须从epoll_wait中醒过来才可以走循环流程,然后走到抢锁的地方才有机会抢,而一旦worker process抢到了accept锁,任务比较多的情况下,epoll_wait会被频繁激活,导致抢锁的机会大大增加,而空闲的进程500ms才去尝试一次抢accept锁,所以请求量越大,空闲进程抢到锁的可能性就越小.


抢锁流程:

1、抢锁

2、把listen fd加入epoll事件

3、解锁(如果不解锁,那其他进程永远没有机会再accept了)


accept_mutex_delay

含义:设置获得互斥锁的最少延迟时间。

语法:accpet_mutex_delay <number of millisecs>

缺省:500ms

示例:accpet_mutex_delay 1000ms;




小谈 accpet_mutex_delay 参数

标签:process   影响   可能性   listen   

原文地址:http://1038741.blog.51cto.com/1028741/1828530

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!