首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

一次线上有关问题的排查过程

2013-09-24 
一次线上问题的排查过程? ? ? ?是缓存系统超时扫描线程在检查超时队列的时候出问题了,按道理说DelayQueue

一次线上问题的排查过程

? ? ? ?是缓存系统超时扫描线程在检查超时队列的时候出问题了,按道理说DelayQueue没有取到超时数据,应该一直park在那的,没啥问题呀,为何会导致cpu占用很多呢? 难道跟自旋锁有关?

?

? ? ? ? 4、想不通.......一次线上有关问题的排查过程,把问题丢给了缓存团队的哥们儿,但是他们太忙,从第一次反馈到自己花时间着手解决,都一周时间了,感觉完全是你把他们新版上去了,没把你搞成线上故障,剩下的他们都不放在心上了一样.....

?

? ? ? ? 5、于是在稍微有点时间的情况下,自己着手解决吧,google了一把DelayQueue占用cpu的问题,竟然发现有哥们儿也遇到了类似的问题,浏览一遍觉得这哥们儿说的挺靠谱,检查一下我们的代码,发现果然getDelay的时候,直接返回的是毫秒值:

?两台机器上的执行结果:

? ? ? ? ?9、问题找到了,但是为啥会这样呢,是因为硬件原因?cat /proc/cpuinfo分别看了有问题和没问题机器的cpu,果然不一样!

?

? ? ? ? 13、内核参数,在内核参数中查找CONFIG_HIGH_RES_TIMERS=y?配置型,来确认启用high resolution timer,我们线上linux 2.6.32的机器的配置是在/proc/config.gz,gunzip解压后可以看到这个配置项;而2.6.18的机器的配置项在/boot/config-2.6.18-308.4.1.tb693.el5xen,不过没有这个配置项,至此可以确定没有启用high resolution timer。

热点排行