也谈Go的公平调度的缺陷

原创
2017/12/26 15:04
阅读数 2.9K

记一次latency问题排查:谈Go的公平调度的缺陷》一文发现了一个现象:从网络消息可读,到读网络的goroutine被再次调度,中间花费了4.368ms !!!

很遗憾的是作者想当然的认为这是由于Go的调度器的设计缺陷,但是并不是。

我之前写过两篇Blog,都谈到了GOMAXPROCS的设置,出现上面这个现象是由于这个参数设置的太小导致。

请把GOMAXPROCS设置到比较大的数值。

更进一步的做法,可以修改GO源码中关于调度器的部分, 使得monitor线程的最大等待时间变小.可以从10ms改成1ms,即可大大减小goroutine的调度延时.

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部