日期:2014-05-16  浏览次数:20720 次

降低 Linux 内存开销

Linux 广受追捧的一个优点是它比 Microsoft? Windows? 的效率更高,因此在不太前沿的硬件上也能很好地执行。对于依然使用 Windows 98 时代的机器的人来说,最新最卓越的软件(特别是安全补丁)已经不再支持这些机器,因此这种性能优势使 Linux 成为颇具吸引力的升级产品。

然而,问题的真相在于虽然 Linux 内核仍然可以配置成合理的大小和效率,但由于新计算机的处理能力大大加强,很多 Linux 桌面环境(例如 KDE 和 GNOME)都增加了许多特性。因此,在较老的硬件上默认安装大多数发行版时,提供的性能都不是一流的。很多现代应用程序也是如此,例如,Firefox 之类的 Web 浏览器和 OpenOffice 之类的办公套件均功能完备,但是尝试在只有 128MB RAM 的机器上运行这些程序,可能会成为非常痛苦的体验!

该怎么办?丢掉所有旧的硬件然后升级?还是安装 1995 年左右的 Linux 发行版?(如果您决定走这条路,我记得使用 Linux-FT 是一种很好的体验。)

不要担心:多年以前,Linux 社区中的人就已经认识到这个问题,Linux 内核和发行版的一大特性(有人喜欢说?这个?伟大特性)在于其能够定制。本文将介绍如何对 Linux 系统进行裁减,以便在小容量的硬件上获得更好的性能。

内存的作用

在大多数情况下,桌面操作系统性能的一个最重要因素就是系统可用的内存量。虽然拥有快速的处理器效果不错,但是如果没有足够的物理内存保证一直很好地利用处理器,系统可能会花费大量时间用于在物理内存和交换空间之间的交换数据(这种情况称为?磁盘抖动),而 CPU 的大部分时间都是空闲的。因此对于老式的系统来说,额外添加内存通常是提高性能的最简单方法。然而,有很多原因决定了这种方法不太可能,例如缺少空闲插槽,对于一些系统(尤其是笔记本或基于 RAMBUS 的系统)来说,则是缺少买得起的 RAM,以及不希望在一台过期的系统上花更多钱这个容易理解的心理。

如果无法或不愿意升级 RAM,接下来最好减少系统上的 RAM 需求。本文将展示为 Linux 机器打造内存天堂 5 个简单步骤。

步骤 1:选择正确的桌面环境

惟一需要做的重要选择就是要安装的 Linux 发行版和桌面环境(DE)。尽管这是截然不同的选择,但是发行版的选择可能影响 DE 的选择。虽然没有任何东西能够阻挡您在系统上安装软件,例如在 Ubuntu 上安装 Fluxbox;但是您会发现如果简单地使用发行版所附带的默认 DE,一切就会轻松很多。

在本文方案中,目标是寻找面向桌面的简单发行版,以便于新用户使用。我从 Ubuntu 6.10 开始入手,它和 GNOME 2.16 一起推出。

对于基本系统来说,我选择了一台配有 800MHz 处理器和 256MB RAM 的老机器。我将执行了两次测试,一次使用全部 256MB RAM 正常引导,一次在内核行上附加了?mem=128M,这会强制内核只识别 128MB 物理内存。这样就可以有效地试验 256MB 和 128MB 的机器,而不必实际使用另一台物理机器(也不必反复从机器中插拔内存)。这个内核行选项能够足够近似地模拟 128 MB 的机器的行为;注意,如果真的只有 128MB 内存,可能会遇到其他问题,举例来说,要使用 Ubuntu,必须使用一个不同于普通机器磁盘的安装盘,它是专门为少于 192MB RAM 的机器准备的。

为了了解基本水平的内存使用情况,引导该系统,登录到桌面系统,并启动一个终端(在本文后面的内容中,我将这种设置称为?基本使用水平(base level));然后使用?free?命令来检查系统中的空闲内存量,结果如清单 1 所示。


清单 1. Ubuntu 在 256MB 机器上的基本使用水平
                
ubuntu # free
             total       used       free     shared    buffers     cached
Mem:        255988     231704      24284          0       6432     139292
-/+ buffers/cache:      85980     170008
Swap:       746980          0     746980

第一行说明 256MB RAM 中有 231MB “正在使用”。下一行告诉我们尽管有 231MB 内存正在使用,但是应用程序只使用了其中的 86MB;缓冲区和高速缓存使用了其余的内存。

要评价性能,该清单中最重要的部分是?Swap?一行;它告诉我们当前没有使用任何交换空间,这说明目前没有真正遇到内存问题。系统现在可以全部装入物理内存,而不必借助慢速的基于磁盘的交换空间。

然后,为了了解系统的日常使用情况,启动一个 Web 浏览器(Firefox 2.0),然后用其打开 developerWorks,将即时消息客户机(Gaim)连接到 MSN,并使用文件管理器来浏览文