在使用source navigator过程中遇到CPU过高占用率,使CPU温度升高,导致内核崩溃的解决方法
运行环境: 2.6内核 Fedora Core 4 图形界面
用源代码编译后source navigator,在终端键入snavigator,建立2.6内核项目,当
snavigator在扫描h,c文件,扫描到达15%时,出现系统被挂起.重起系统,重复刚才说
的步骤,另起一个终端,打开top,发现一个名字叫cbrowser的进程在疯狂地占用CPU,
竟然达到了95%,怪不得.上网google搜了搜,有个软件叫cpulimit,它能对用户进程
占用CPU率进行限制.
下载地址: cpulimit.sourcforge.net
安装好cpulimit后,重复以上步骤.打开另一个终端,从top得知cbrowser的可执行名
为cbrowser,我想把它限制为10%.键入
# cpulimit -ecbrowser -l10
哈哈,从top清楚看到cbrowser已被限制在10%左右.
如果想不让它在CPU上运行,
# cpulimit -ecbrowser -l0
如果在扫描文件过程中因断电等原因导致中断,snavigator能从断开处继续进行,
Open->Reparse->Tools->Refresh Project
这个时候要注意,snavigator读写数据库飞快,更容易引起CPU温度升高,需要对
dbimp进行限制,
# cpulimit -edbimp -l0
停一会儿,再让它继续,Ctrl+c.
在最后阶段xref,也需要注意对cbrowser2进行限制.
# cpulimit -ecbrowser2 -l0
停一会儿,再让它继续,Ctrl+c.
经过漫长的等待,2.6内核项目终于大功告成.
cpulimit也可以对httpd,X,nautils等等进行限制.
比如在我的电脑上,我写了一个shell scripts, cpulimit.sh:
#!/bin/sh
/usr/local/bin/cpulimit -enautilus -l15 &
/usr/local/bin/cpulimit -enavigator -l13 &
/usr/local/bin/cpulimit -eX -l15 &
/usr/local/bin/cpulimit -egam_server -l15 &
/usr/local/bin/cpulimit -ebzip2 -l15 &
/usr/local/bin/cpulimit -egnome-terminal -l15 &
#---------------------
然后用emacs打开/etc/rc.d/rc.local,写上
/root/shell/a/cpulimit.sh
保存,退出.
# chmod 760 /root/shell/a/cpulimit.sh
从此,再也没有死机现象发生.