就在最近,我依赖于 pthread_mutex_timedlock 的异步服务器代码似乎过早超时了。起初我以为这只是我的错误,但看到 linux 内核存在一些闰秒问题,看来我不是唯一的问题:https://lkml.org/lkml/2012/7/1/11
当前对此的修复是什么?重启服务器,还是更新内核?我的服务器依赖timedlock机制来等待来自其他线程的事件,并且由于这种过早的超时,CPU使用率一直处于100%,因为它永远不会停留在timed lock上。
我目前正在运行 ubuntu 服务器 10.04.4,内核版本为 2.6.39.1
最佳答案
这在 sudo 下起到了作用:
/etc/init.d/ntp stop; date; date `date +"%m%d%H%M%C%y.%S"`; date; /etc/init.d/ntp start
(freenode 的#kernel 说 date -s "\date\"
修复了它)
CPU 使用率从大约 100% 下降到 0.5% 也证实了这一点。所以我想就是这样,直到下一个闰秒插入。
关于linux - 闰秒和 pthread_mutex_timedlock 过早超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11281551/