2009年3月9日星期一

修复Fedora/linux 的两个Bug

Fedora 10

1.CPU使用率过高,这个主要可能由linux的kernel的频率过高,Fedora中kernel的频率被设定为1000Hz,主要有如下两种解决方法一种是重新编译linux的kernel将频率改为100Hz。另外一种更为简便的方法是使用"divider"的boot参数。打开gedit /boot/grub/menu.lst,
应该可以发现这样的一条:
kernel /vmlinuz-2.6.27.5-117.fc10.i686 ro root=UUID=d4d3f28a-5430-4327-b854-14fd04fa3d75 rhgb quiet
在后面加上参数
kernel /vmlinuz-2.6.27.5-117.fc10.i686 ro root=UUID=d4d3f28a-5430-4327-b854-14fd04fa3d75 rhgb quiet divider=10
重启应该就可以了。
可能有多个kernel的版本,因此在你默认载入的后面加上然后重启就可以了。


2.Fedora/Linux正在谋杀你的硬盘,其实Fedora这个问题还算好Ubuntu还要严重,应该另外的Linux系统也有这样的问题。这个问题是非常严重的,因为一般的硬盘的Load_Cycle只能承受600000次,你可以输入命令查看你是否有这个问题:
Code:
smartctl -d ata -a /dev/sda | grep Load_Cycle_Count

Load_Cycle_Count 0x0012 090 090 000 Old_age Always - 102557
这个是我修复后的值102557,我的硬盘换上去也没多久,六分之一没啦,哀悼……
修复之前基本上是一分钟增长3-5次,太快了。

修复方法如下:
1.你可以输入hdparm命令来访问于修改硬盘参数。
主要可以改变其中高级电源管理的参数(Advanced Power Management)
hdparm -B 254 /dev/sda
或者 hdparm -B 255 /dev/sda

2.如果要永久性的修复

方法一、在/etc/profile的最后一行加上上述命令

方法二、在/etc/pm/的config.d, power.d, sleep.d的目录下分别建立如下Linux脚本文件 (99-hdd-spin-fix.sh):
#!/bin/bash
AC_POWER=$( /usr/bin/on_ac_power; echo $? )
#on_ac_power这个文件如果是用的是交流电则返回1,否则返回0
if [ $AC_POWER -eq 1 ] ; then
hdparm -B 200 /dev/sda#让磁盘读写头快速回到头保护磁盘
else
hdparm -B 255 /dev/sda#也可以可以改为254
fi

重启应该就可以了,反正我的Load_Cycle_Count不再飞增了,你应该再长期的监视一下。

没有评论:

发表评论