解决TIME和CPU USAGE 9999问题

症状:

图片云的slaver系统运行一段时间,突然应用的CPU USAGE上到9999,load飙上去,接着网络中断。重启后不开任何应用,init等的TIME已经是6位数的h了。启动应用马上像之前的情况了。


解决:

过程1:  这个是linux的kernel定时器相关bug,计算进程占用cpu时间出错了。但是具体跟什么东西有关就不清楚,因为所有的应用都是没有root权限的,不会破坏掉什么系统文件。

硬件,主板电池等均正常,系统log中也没有特殊报错。多方排查和规避尝试后,都无法解决,最后重装系统,问题解决了。

过程2: 另外一台机器运行到一段时间出现同样问题,,,只能继续解决,因为之前查资料是内核问题,因此先更换内核试试,运维同学帮忙下载最新内核3.2.14重编, 但是情况依旧。

过程3: 重装不是一劳永逸的方法,而且异地机房操作成本高,系统解决周期长,而且这个看上去不是个别现象。

既然是定时器问题,先检查定时器和帧频器,获取数据如下:

UserHZ   100

SystemHZ 1000000000

kernel timer interrupt frequency is approx. 4016 HZ。

用tsc来计数,sleep两秒:4000216988.000000,

均跟其它正常机器一致。

 

再次确认硬件和其读值操作没有问题。看看能否通过修改定时器来解决呢?

cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc hpet acpi_pm

cat /sys/devices/system/clocksource/clocksource0/current_clocksource
tsc 

分别换了hpet和acpi_pm,均无法解决。

只能尝试jiffies,但是available_clocksource中并没有这个选项。

此时需要关闭acpi,关闭后就变成tsc 和jiffies,关闭apci和让系统默认定时器改成jiffies: acpi=off noapic notsc clocksource=jiffies

重启后init的时间正常,切换回2.6.32内核一样正常,启动应用,一切恢复正常。终于规避了此问题。

 

 vi /boot/grub/grub.conf


default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-358.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=3b0079e3-3e83-4877-acbd-87296efb4c6b rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet  acpi=off noapic notsc clocksource=jiffies
        initrd /initramfs-2.6.32-358.el6.x86_64.img


后续:

但是什么原因引起呢,而且重装OS后就OK了,很难说服自己是硬件问题。只能后续继续跟踪。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值