Linux 在政府部门的应用:优化桌面性能,第二部分

作者:Tom Adelstein

正如我们在上周的文章中讨论的那样,在 Linux 存在的大部分时间里,人们将其作为工作站或服务器而不是桌面来分发。演变而来的默认工作站主要供开发人员使用。因此,当您安装带有图形界面的 Linux 发行版时,它通常看起来像开发人员可能想要的样子。此外,它的性能类似于许多 UNIX 工作站的工作方式,这可能显得很慢。

在本文中,我们将继续以不同的角度看待 Linux 桌面。在这里,我们将其视为具有快速界面的计算机系统,我们可以针对知识工作者和消费者对其进行优化。

优化磁盘访问

PC 中存在许多操作系统可能减慢速度的点。最常见的瓶颈位于随机存取存储器 (RAM) 和硬盘驱动器之间。与增加计算机中的 RAM 容量类似,您可能会发现购买更好的硬盘驱动器可以提高性能。请继续阅读以下讨论,您应该明白为什么您可能需要更好的硬盘驱动器。

通过启用直接内存访问 (DMA),数据可以直接从硬盘驱动器的缓冲区传输到计算机的主内存,而无需处理器参与。虽然结果因 PC 中的设备而异,但使用 DMA 应该可以提高性能。您应该尝试一下,看看是否体验到磁盘性能的提升。请参考图 1。

Linux in Government: Optimizing Desktop Performance, Part II

图 1. 使用 DMA

大多数 Linux 发行版将 using_dma 选项设置为 1,并且 Linux 内核通常会自动设置 DMA。我发现我的系统中该标志设置为 0,这意味着我的 using_dma 选项已关闭。看看图 1 的顶部,它表示我测试硬盘驱动器参数的位置。

当我运行命令hdparm -t /dev/hda时,我的磁盘读取速度为 24MB/3.11 秒,这无法提供最佳的磁盘访问速度。因此,我使用以下命令开启了 using_dma:hdparm -d 1 /dev/hda命令,发现我的磁盘访问速度从 24MB/3.11 秒提高到 140MB/3.01 秒。您可以在图 1 的灰色区域中看到结果。

简单地开启 using_dma 启用了一个 16 位模式,所以我切换到 32 位模式,发现我的读取时间略有提高。我的缓冲磁盘读取速度从每秒 46.50MB 提高到 46.52MB,提升不大。我还研究了开启多扇区 I/O。这是现代 IDE 硬盘驱动器的一项功能,它允许每个 I/O 中断传输多个扇区,而不是通常的每个中断一个扇区。启用此功能后,通常可以将磁盘 I/O 的操作系统开销降低 30-50%。在许多系统上,它还可以将数据吞吐量提高 5% 到 50%。

然后我运行了命令hdparm -m /dev/hda并看到了以下结果

/dev/hda:
multcount    = 16 (on)

但是我的缓冲速度减慢了

138 MB in  3.02 seconds =  45.72 MB/sec

在 Fedora Core 3 中,您可以通过取消注释值来更改 /etc/sysconfig/harddisks 文件中的 hdparm 参数。但是,除非您看到明显的改进,否则不要进行任何更改。只需购买更好的硬盘驱动器即可。

降低 CPU 使用率

窗口框架图像文件可能会降低系统性能,具体取决于主题制作者用于绘制框架的技术。例如,在 GNOME 中,Crux 窗口框架选项加载缓慢,具体取决于 CPU 资源。在我用于测试的系统中,我使用了主频为 1.5GHz 的 Sempron 2200。为了降低 CPU 使用率,我更改了我的框架选项,并注意到应用程序启动速度有所提高。例如,我下载并安装了一个名为 Atlanta 的主题并运行了

# gconftool-2 --type string --set /apps/metacity/general/theme Atlanta

我也可以通过使用“启动”->“首选项”->“主题”并选择“主题详细信息”来更改窗口框架。然后我可以选择“窗口边框”选项卡,单击“Atlanta”并关闭。

虽然主题的使用是主观的,人们喜欢选择自己的视觉效果,但企业往往希望获得尽可能好的性能。您可以尝试不同的主题元素组合,看看是否发现性能差异。

关闭 GNOME 启动画面

当您登录到 GNOME 桌面时,您会看到一个启动画面,其中显示图标并占用时间。我关闭了我的启动画面,以减少 CPU 周期,并且因为我发现它很烦人。如果您的资源有限,您可以使用此命令来节省 CPU 周期,或者如果您觉得启动画面很烦人,可以将其删除

# gconftool-2 --type bool --set /apps/gnome-session/options/show_splash_screen false

用户还可以通过使用“启动”->“首选项”->“更多首选项”->“会话”,然后在第一个选项卡中取消选中它来访问启动画面选项。请参见图 2,了解会话选项。

Linux in Government: Optimizing Desktop Performance, Part II

图 2. 关闭启动画面

请注意,您可以在“会话”工具中选择多个选项。稍后,我们将使用第三个选项卡“启动程序”,向您展示如何加载脚本以缩短 OpenOffice.org 的启动时间。

降低颜色使用量

今天的 Linux 计算机系统通常支持 24 位颜色,这意味着 16,777,216 种颜色。但是,您可能会发现您的系统在使用 16 位颜色时性能也一样好,特别是如果您使用 VMware 或 rdesktop 等虚拟机在 Microsoft 终端服务器上将 Linux 作为瘦客户端运行时。您还可以减少分配给 AGP 视频芯片的内存量,并将该内存用于系统操作,特别是当您需要挤出 RAM 等资源时。

在 Ubuntu 上,默认颜色设置为 24 位颜色。更改该设置是一个手动过程。因此,根据您的发行版,您可以从命令行更改颜色深度

su root or use sudo 
        
cd /etc/X11 or /etc/ 
        
edit  XF86Config-4 or xorg.conf 

具体取决于您拥有的 X11 版本。

向下滚动到标题为“Screen”的部分,找到名为“DefaultDepth?”的条目。将您在那里找到的设置从 24 更改为 16。

在 Fedora 中,您可以通过选择“启动”->“系统设置”->“显示”,然后将“颜色深度”更改为“数千种颜色”来更改设置。

回到 OpenOffice.org

上周我们讨论了用于 OpenOffice.org 的图形缓存,以及每个对象的内存设置。本周,我们想讨论快速启动 OpenOffice.org 生产力套件的问题。OpenOffice.org 看起来像一系列独立的程序,例如文字处理器和电子表格程序。我们可以将其视为类似于 Microsoft Office,您可以单独购买 Word 或 Excel。

实际上,OpenOffice.org 由一个具有不同界面的大型应用程序组成。因此,启动您使用的第一个 OpenOffice.org 应用程序需要时间。例如,当您启动 OO Writer 时,您可能想去喝杯咖啡。但是,如果您保持其中一个应用程序打开,您可以快速打开一个新文档。当您启动(在本例中为 OO Writer)时,大型 OpenOffice.org 应用程序已经存在于内存中。

存在一些预加载 OpenOffice.org 的实用程序。一个名为 Quickstarter 或 oooqs,用于 KDE;另一个名为 ooqstart-gnome,用于 GNOME。但是,我们没有看到后一个实用程序的新开发,而且它经常导致错误消息。

您还可以使用一个名为 ooffice -quickstart 的内置程序,您可以从命令行手动启动它。命令是

$ ooffice -quickstart &

要使用它,请手动启动 ooffice -quickstart,或者让它在您启动窗口管理器或桌面时自动启动。然后,您可以启动文字处理器等,工作,然后关闭应用程序。但是,一旦您关闭 OpenOffice.org,后台快速启动进程就会自动终止。

oooqs 和 ooqstart-gnome 使用的脚本不会遇到此问题。因此,您可能需要使用从 O'Reilly & Associates 出版的Linux Desktop Hacks修改的脚本。使用此方法,我们创建一个脚本并将其放在名为 /usr/local/bin/oostay 的文件中。脚本如下所示

#!/bin/bash
# Restart ooffice -quickstart every time it exits
instances=`ps ax | grep -e -quickstart | grep -v grep | wc -l`
if [ $instances == 0 ]; then
while true; do ooffice -quickstart ; done
    else
    exit 1
fi

创建后,使用以下命令使其可执行

# chmod +x /usr/local/bin/oostay

例如,您可以将其指定在 GNOME 的“会话”对话框中,使其在您登录到桌面时启动。请参见图 3。

Linux in Government: Optimizing Desktop Performance, Part II

图 3. 每次都 ooffice -quickstart

提高 Firefox 性能

在 Ubuntu 上运行的 Firefox 似乎比在 Fedora Core 3 和其他一些 Linux 发行版上运行的 Firefox 慢。但是,您可以通过一些更改来加快其启动速度和 Web 页面渲染速度。您必须打开 Firefox 并在地址栏中键入about:config。然后,您可以使用 about:config 屏幕通过增加与网络不同方面的最大连接数来调整性能。一些要更改的设置及其值包括

network.http.max-connections                    128
network.http.max-connections-per-server            48
network.http.max-persistent-connections-per-proxy    24
network.http.max-persistent-connections-per-server    12

当您找到一个文本字符串,例如network.http.max-connections在 about:config 屏幕中,双击该条目,将弹出一个文本框,允许您更改值。如果您只是想将默认值从 true 更改为 false,您可以双击相应的文本字符串,值就会更改。每个文本字符串都在属性字段的右侧提供一个状态。它显示默认状态或用户设置状态。因此,您始终可以返回到默认设置。

对于宽带用户,Firefox 对以下属性的某些默认值的更改做出响应

network.http.pipelining 
network.http.proxy.pipelining 
network.http.pipelining.maxrequests

默认浏览器一次向 Web 页面发出一个请求。启用管道化会发出多个请求,这可以加快页面加载速度。按如下方式更改条目

  • 将 network.http.pipelining 设置为 true。

  • 将 network.http.proxy.pipelining 设置为 true。

  • 将 network.http.pipelining.maxrequests 设置为 30。这意味着它一次发出 30 个请求。

  • 右键单击 about:config 页面上的任意位置,然后选择“新建”->“整数”。将其命名为 nglayout.initialpaint.delay 并将其值设置为 0。浏览器在处理接收到的信息之前会等待;此更改会更改行为,使其立即执行操作。

临时考虑事项

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

与此同时,也许人们想参与进来,对预链接和其他性能增强功能发表评论。请随意这样做。我们只要求您的评论具有建设性,并解释如何实施您的建议。

Tom Adelstein 是 Hiser + Adelstein 的负责人,Hiser + Adelstein 是一家总部位于纽约市的开源公司。他是Exploring the JDS Linux Desktop一书的合著者,也是 O'Reilly 即将出版的关于 Linux 系统管理的书的作者。自 1999 年初以来,Tom 一直在从事 Linux 咨询和撰写文章和书籍。

加载 Disqus 评论