在使用source navigator过程中遇到CPU过高占用率,使CPU温度升高,导致内核崩溃的解决方法

sourceid 2008-10-27 09:34:16
运行环境: 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

从此,再也没有死机现象发生.
...全文
290 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧