给用Ubuntu的EeePC降温
对于使用过 Ubuntu 的 EeePC 用户来说,可能会发现一个问题:小 E 在运行 Ubuntu 时,短短几分钟底座就会变得非常烫,与 Windows 系统相比,这个发热量可谓异常之大。也许正是因为这个巨大的发热量,许多机友放弃了在 EeePC 上使用 Ubuntu 的想法。一方面是难以忍受高热量,另一方面也是出于对小 E 使用寿命的担忧,毕竟如此大的发热量会让人感到不安。
我仔细思考了一下,我的 EeePC 1000HE 从硬件角度来看能耗应该是很低的,可为什么在 Windows 下发热量小,而在 Ubuntu 下却如此之高呢?经过检查,我发现发热主要源自硬盘。联想到 Ubuntu 的内存管理机制,我大概猜到了 EeePC 1000HE 在使用 Ubuntu 时发热量高的原因。
查看系统监视器,发现 swap 分区里居然驻留了 200M 的数据,原来如此!Ubuntu 放着物理内存不用,大量使用硬盘上的 Swap 分区,对于非固态硬盘的 1000HE 来说,这无疑是最大的热量来源。
一、调整 swappiness 值以优化性能和降低发热
在 Linux 系统中,swappiness 的值与 swap 分区的使用密切相关。当 swappiness = 0
时,表示最大限度使用物理内存,仅在必要时才使用 swap 空间;而 swappiness = 100
时,表示积极使用 swap 分区,并将内存中的数据及时转移到 swap 空间。Ubuntu 的默认 swappiness 值是 60,这里建议将其修改为 10,以改善性能和降低发热。以下是具体操作步骤:
(一)查看当前的 swappiness 值
$ cat /proc/sys/vm/swappiness
正常情况下,你应该会看到系统的 swappiness 值为 60。
(二)临时修改 swappiness 值
$ sudo sysctl vm.swappiness = 0
请注意,此修改是临时性的,系统重启后会恢复为默认的 60。
(三)永久修改 swappiness 值
为了让修改永久生效,需要进行以下操作:
$ sudo gedit /etc/sysctl.conf
在该文件的末尾添加以下一行:
vm.swappiness = 0
保存文件,然后重启系统,这样设置就能永久生效。
理论上,经过上述修改,Ubuntu 的运行速度会更快,而且由于减少了对物理硬盘的使用,发热量也会相应降低。不过,将 vm.swappiness
改为 0 是否完全合适,我还在测试中,等运行一段时间后会给出最终结果。
二、解决 Ubuntu 的 acpi 问题
另外,Ubuntu 的 acpi 存在问题,而且问题还比较严重。对于这个问题,可以尝试在启动内核时添加 noacpi
参数。如果不进行相关配置,Ubuntu 在笔记本上使用时会对硬盘造成损害。因为笔记本默认有一套节电模式,会尽量使用低功耗指令,而硬盘的低电指令会导致频繁的线性读写。在 Ubuntu 下,这种读写频率会超过硬盘承受能力的 3 倍以上(Windows 不存在此问题,是因为其默认情况下关闭了硬盘的节电模式,反而起到了保护硬盘的作用)。
以下是修改 /boot/grub/menu.lst
的示例:
sudo gedit /boot/grub/menu.lst
将其修改为类似以下内容:
title Ubuntu 8.04.1, kernel 2.6.24-21-eeepc
root (hd0,1)
kernel /boot/vmlinuz-2.6.24-21-eeepc root = UUID = 1de725d1-6c48-429e-bd4c-3134e09740fd ro quiet splash noapic
initrd /boot/initrd.img-2.6.24-21-eeepc
quiet
title Ubuntu 8.04.1, kernel 2.6.24-21-eeepc (recovery mode)
root (hd0,1)
kernel /boot/vmlinuz-2.6.24-21-eeepc root = UUID = 1de725d1-6c48-429e-bd4c-3134e09740fd ro single noapic
initrd /boot/initrd.img-2.6-24-21-eeepc
title Ubuntu 8.04.1, memtest86 +
root (hd0,1)
kernel /boot/memtest86 +.bin
quiet
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »