测试 CPU 稳定性的最好方法之一是Linux 内建的 -- 内核编译,您可能会感到奇怪。gcc 编译器是测试一般 CPU 稳定性的一个很好的工具,内核编译将充分使用 gcc。下面是LinuxCpu测试稳定的方法与应急方法。
LinuxCpu测试通过在/usr/src/linux 目录创建并运行下面的脚本可以对您的机器进行 industrial-strength 内核编译压力测试:
cpubuild 脚本
#!/bin/bash
make dep
while [ "foo" = "foo" ]
do
make clean
make -j2 bzImage
if [ $? -ne 0 ]
then
echo OUCH OUCH OUCH OUCH
exit 1
fi
done
您将注意到此脚本重复编译内核。原因很简单 -- 一些 CPU 有断断续续的小故障,使得它们在 95% 的时间里顺利地编译内核,但又不时地使内核编译崩溃。通常情况下,这是因为在处理器加热到一定温度(在该温度下处理器变得不稳定)之前可能进行了 5 个或更多内核编译。
在上面的脚本中,注意调整 -j 选项,使紧跟它的数字等于系统中 CPU 的数目加 1;换句话说,若是单处理器使用 "2",双处理器使用 "3",依此类推。-j 选项告诉 make 程序行平行编译内核,确保在编译每个源文件后总有至少一个 gcc 进程准备就绪 -- 确保 CPU 承受的压力达到最大。如果下午不准备使用 Linux 机器,请继续运行此脚本并让机器重新编译内核几个小时。
LinuxCpu测试可能的 CPU 问题
如果脚本持续几个小时运行顺利,祝贺您!您的 CPU 已经通过了第一个测试。但是,上述脚本可能会意外死掉。如何知道是 CPU 有问题而不是其它的问题呢?如果 gcc 发出与下面类似的错误,则很有可能是 CPU 有问题:
gcc: Internal compiler error: program cc1 got fatal signal 11
这时,CPU 有三种可能的状态:
如果您输入 "make bzImage" 重新进行内核编译,并且编译器死在同一文件上,请继续一遍遍输入 "make bzImage"。如果试了大约十次之后,编译进程继续死在此特定文件上,那么问题很可能是由(很少)gcc 编译器错误引起的,该错误是由此特定的源文件而不是有问题的 CPU 触发的。但是,这些天 gcc 很稳定,那么这种情况发生的可能性很小。
如果您输入 "make bzImage" 重新进行内核编译,并且稍后得到另一个信号 11,那么您的 CPU 很可能快要无法使用了。
如果您输入 "make bzImage" 重新进行内核编译并且内核编译成功,那也不意味着您的 CPU 是好的。通常这意味着仅当 CPU 升到一定的温度以上(CPU 使用超过一定时间后会变热,可能进行过几次内核编译后能达到此临界点),CPU 故障才不时地显露出来。
LinuxCpu测试抢救 CPU
如果您的 CPU 在重负载之下正发生随机的断断续续的错误,可能您的 CPU 根本没什么问题 -- 可能只是冷却不当。您可以检查下列内容:您的 CPU 风扇是否已插上?
它是否能相对地避免灰尘?
通电时风扇确实旋转(并以适当的速度旋转)吗?
散热片在 CPU 上固定好了吗?
在 CPU 和散热片之间有导热胶吗?
您的机器通风情况足够好吗?
如果一切正常,您可能希望让此打开的机器返回到内核编译测试。请让内核编译进行大约五分钟时间,然后将手放到这个正在运行的机器中并触摸周围的供电设备的外部金属保护外套。然后,用指尖小心地测试散热片的温度。如果异常地热,那么很可能您的散热片/风扇组合相对于您的特定 CPU 来说不够强劲。在这种情况下,升级您的系统冷却硬件 --
CPU 尚未遭受任何永久性损坏并且仍然可发挥作用。
【编辑推荐】