政府中的 Linux:优化桌面性能,第一部分

作者:Tom Adelstein

在他的文章 “Linux for Suits: The No-Party System” 中,Doc Searls 对 Linux 提出了一个见解,这可以帮助我们理解为什么我们可能想要调整 Linux 桌面的性能。他将 Linux 称为人们可以构建发行版的原材料,并说道

正如一位 Linux 程序员曾经告诉我的那样,“Linux 不能起诉任何人。” 事实上,Linux 甚至不是 Windows 和 Mac OS 定义的那种平台。相反,Linux 是一种在野外生长的建筑材料,天然适合制作地基和框架。这里的“野外”指的是肥沃的人类思维,这就是为什么它在使用过程中不断发展和改进。

人们分发 Linux 而不是构建它。与传统的操作系统不同,任何对 Linux 有一定了解的人都可以将各个部分组合在一起并创建一个发行版。因此,尽管有许多不同的 Linux 发行版可用,但它们都来自相同的构建材料。发行版之间的差异在于各处的调整,或者用户执行相同任务的各种方式以及使用的主题类型。但正如许多人所说,“Linux 就是 Linux”——它有不同的“味道”。发行商创建了这些“味道”,而这些“味道”的基础是默认配置。

在其存在的大部分时间里,人们都是将 Linux 作为工作站或服务器而不是桌面来分发的。实际上,已经发展出来的默认工作站主要为开发人员而存在。因此,当您安装带有图形界面的 Linux 发行版时,它通常看起来像开发人员可能想要的那样。它的性能类似于许多 UNIX 工作站,对于许多知识工作者来说,这可能显得很慢。

在本文中,我们以稍微不同的角度看待 Linux 桌面。我们将其视为一个计算机系统,它最大限度地发挥了其作为消费产品的优势。当我们为消费者优化 Linux 时,它就变成了一个快速的界面。

如果您曾抱怨 OpenOffice.org 或 Firefox 的速度,或者 Linux 启动所需的时间,那么这组优化应该会改变您的看法。Linux 可以快速启动,文字处理器可以瞬间打开,浏览器可以飞速运行。所以,让我们进行这些调整,让您的计算机也能飞起来。

注意:在本文中,我们使用两个最流行的 Linux 发行版,Fedora Core 3 和 Ubuntu 5.04。Red Hat 使用基于 RPM 的软件包管理系统构建和发布 Fedora。Ubuntu 开发人员基于 deb 软件包管理系统构建他们的发行版。Mandriva、SUSE 和 Red Hat Enterprise Linux 等都使用 RPM 软件包管理系统。Linspire 和 Xandros 等都使用 deb 软件包管理系统。

速度去哪儿了

在 PC 中,操作系统的许多地方都可能成为瓶颈并减慢速度。最常见的瓶颈之一发生在随机存取存储器 (RAM) 和硬盘驱动器之间。即使您的系统确实有充足的快速 RAM,它也可能决定节省 RAM 并使用虚拟磁盘内存,虚拟磁盘内存包含在硬盘驱动器上的交换文件中。硬盘驱动器的运行速度比 RAM 慢 100 倍,这就是系统速度下降的一个原因。

您可以通过添加更多 RAM 来解决系统速度问题。几年前,我经常购买计算机并添加内存,这使基本系统的价格翻了一番甚至两番。我不得不这样做,因为作为一名作家,我使用了图形程序,它们使用了大量 RAM。幸运的是,RAM 现在不贵了。您可以用大约 150 美元购买一根 1GB 的通用 RAM 条,用于大多数台式计算机。如果您使用笔记本电脑,内存会更贵。尽管如此,计算机性能的提高使成本显得微不足道。

如果您有足够的可用 RAM,Linux 会使用它而不是硬盘驱动器。在图 1 中,您可以看到 Fedora 性能监视器在包含 768MB RAM 的系统上的屏幕截图。请注意,在几个地方,CPU 使用率飙升,而内存保持稳定。受监控的系统是 AMD Sempron 2200,配备 1.5GHz 处理器。该系统来自 Micro Center,配备 256MB RAM,售价约为 250 美元。它是 PowerSpec SBB1。我添加了 512MB 内存,花费 70 美元。

Linux in Government: Optimizing Desktop Performance, Part I

图 1. Fedora 的系统监视器

为了防止该系统立即访问交换驱动器,我利用了 Linux 内核的一项功能,并降低了它立即查找交换文件的倾向。人们称内核的这个方面为“swappiness”(交换性)。它是一个运行时可调参数,可以通过 proc 接口获得,供任何需要调整内核行为以满足自身需求的人使用。

参数越高,计算机使用磁盘的频率就越高。因此,如果您要编译大型软件,您可能希望在让计算机静置编译时将 RAM 用于其他事情。但是,如果您想撰写一份提案,并且需要访问互联网进行研究、回复电子邮件和使用即时消息,您可能希望使用 RAM 而不是磁盘。

在我的系统上,我降低了内核使用交换文件的倾向。我通过运行以下命令来做到这一点

$ sudo cat /proc/sys/vm/swappiness 

并发现设置值为 60。这是内核开发人员设置的默认值。我想要一个较低的数字,所以我运行了

$ sudo sysctl -w vm.swappiness=10 

并再次运行 cat 命令,它显示为 10。我添加了

vm.swappiness=10 to /etc/sysctl.conf 

我将此行放在最后一行。该条目没有任何注释,因此在配置文件中看起来很突兀。我注意到响应速度立即得到了改善,并且由于 /etc/sysctl.conf 中的条目,系统启动时以值 10 作为新的默认值。

释放更多内存

在默认的 Linux 配置中,发行商提供六个文本模式的虚拟控制台。您可以通过按 Ctrl+Alt+F1 到 Ctrl+Alt+F6 来访问每个控制台;Ctrl+Alt+F7 切换到图形桌面。每个虚拟控制台都会消耗内存。

虚拟控制台吸引了我使用 Linux,它们是我最喜欢的功能之一。但是,我不太经常使用这些控制台。我喜欢有一个额外的控制台,这样我可以在需要时访问图形终端,但作为桌面用户,我不需要六个。

我编辑了 /etc/inittab(见图 2),并注释掉了生成 getty 的六行中的四行左右。这使我可以释放更多内存,用于我的 OpenOffice.org 生产力套件,我们稍后将重新配置它。

Linux in Government: Optimizing Desktop Performance, Part I

图 2. 禁用虚拟终端

加速 OpenOffice.org 的启动

我听到的主要抱怨之一是 OpenOffice.org 应用程序启动需要多长时间。您可以通过安装 ooqstart-gnome 程序向 GNOME 添加一个快速启动小程序,这可能对某些人有帮助。但是,对 OOo Writer 进行内部调整可以提高整个套件的性能。

要完成此操作,您需要启动文字处理器 Writer。接下来,您需要打开“工具”下拉菜单并选择“选项”。打开选项框后,您就可以调整内存并加速您的 Linux 生产力套件了。让我们看一下图 3。

Linux in Government: Optimizing Desktop Performance, Part I

图 3. OpenOffice.org 选项

在上图中,您可以看到我们选择了第一个展开框,然后用鼠标单击了“内存”。这显示了您在图 3 中看到的窗口。我更改了“图形缓存”下“用于 OpenOffice.org”和“每个对象的内存”的默认值。我将第一个值从 6 增加到 128MB。我还将第二个值从 0.5 增加到 20MB。

单击“确定”后,我关闭了文字处理器并重新打开了两次。每次应用程序打开的时间都更少。在 Ubuntu 下,我发现 OO Writer 在三秒钟内打开,而在 Fedora 中,它在不到六秒钟内打开。以前,文字处理器分别需要 30 秒和 26 秒才能启动。

仅仅是开始

由于篇幅限制,我们不得不将关于优化的讨论分成不同的部分。希望第一篇文章能够使您在桌面性能方面做出改进。我们在未来文章中所做的每一项更改都将产生累积效应,很快您将以全新的方式看待您的整个 Linux 操作系统——作为一个快速的桌面。

Tom Adelstein 在 Hiser+Adelstein 工作,担任分析师,该公司总部位于纽约市。他是 Exploring the JDS Linux Desktop 一书的合著者,也是即将出版的关于 Linux 系统管理书籍的作者,该书将由 O'Reilly and Associates 出版。自 1999 年初以来,Tom 一直在咨询和撰写关于 Linux 的文章和书籍。

加载 Disqus 评论