之前发现nginx的进程在任务分配方面非常的不平均,即某个进程一旦忙起来会忙很久,而空闲的线程却一直空闲,跟下代码发现epoll_wait中默认的timer是500ms(没有任务的情况下),可以通过减少accept_mutex_delay这个参数让空闲的进程有更大的机会抢到accept锁,从而使任务更加平均的分配,至于对效率的影响,需要测试才能知道。
我们提供的服务有:成都网站设计、做网站、成都外贸网站建设公司、微信公众号开发、网站优化、网站认证、宜黄ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的宜黄网站制作公司
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参数
浏览路径:https://www.cdcxhl.com/article4/pdhgie.html
成都网站建设公司_创新互联,为您提供网站设计、动态网站、ChatGPT、网站收录、外贸建站、商城网站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联