正如已经讨论过的,我们所称的 X,实际上是各种组件的集合:X 服务器、窗口管理器、桌面环境等等。在 MS Windows 中,GUI 桌面与操作系统本身紧密集成。Linux 则不然,它遵循 Unix 的传统,将各种独立的组件组合起来以实现最终结果。因此,我们对每个组件及其相关的配置和实现都有选择。简而言之,非常灵活。这就是你可以发挥作用的地方。你可以尝试各种可能性,并决定哪种方案能给你带来最大的性价比。
在低端硬件上,这给了我们很大的自由度来降低对可用系统资源的需求。这是好事,因为如果允许,X 可能会非常贪婪地占用系统资源。如果您最近安装了一个新的 Linux 发行版,您可能已经被赋予了一个带有许多花哨功能的默认桌面环境。并且某些功能可能需要相当数量的内存和 CPU 才能达到合理的性能水平。如果您有足够的性能,这应该不是问题。
人们常说 Linux 在相对较少的内存下也能很好地运行。这在某种程度上是正确的。但这并不意味着每种可能的配置都可以在低内存下运行。因此,如果您想使用内存密集型应用程序,那么您必须拥有足够的内存。或者您必须做出牺牲才能达到令人满意的性能水平。在 16MB 内存甚至更少的情况下运行 X 并获得合理的性能是完全可能的,如果您真的想挑战极限的话。但是您将不得不忍受一些真正的限制。
让我们来看看一些组件以及减少系统资源需求的方法,以防您使用低端硬件,或者性能未达到预期。
毫不奇怪,但整体系统性能在以下情况下会达到最佳:快速显卡、快速硬盘以及大量的内存——如果您想要兼具快速和炫酷的系统。
显卡当然是必要的,并且 X 服务器的视频性能与显卡的芯片组以及相应的 XFree86 驱动程序相关联。仅仅因为某个显卡受到 XFree86 的支持,并不一定意味着它与其他显卡一样优化!它也可能在较低的颜色深度下表现更好(见下文)。访问 xfree86.org 查看是否有关于您的显卡在性能或其他问题方面的任何说明,这很可能是值得的。
并且您可以尝试其他版本的 XFree86。在撰写本文时,v4.2 刚刚发布。由于 v4.x 是以增量方式开发的,某些显卡在 3.3.6 版本下可能仍然表现更好。如果您正在使用 x4.x 并且性能不佳,请确保您正在使用最新的可用版本。
内存越多越好。X 会进行大量缓存以帮助提高性能。但是缓存需要内存,如果一开始内存就不多,那么我们就需要减少内存需求。以下是一些针对内存不足或性能问题的用户的提示
使用 free 命令来确保所有内存和交换空间都被识别。
确保您没有其他系统服务占用内存或 CPU。使用 top 或 ps 查看正在运行的程序,并禁用任何可以禁用的程序以释放内存和 CPU。同样,默认安装可能有很多您实际上不需要运行的东西。
确保您有足够的交换空间。对于低内存甚至适度内存,交换空间更为重要。一个通用的经验法则是交换空间是物理内存的两倍。对于低内存,这还不够。尝试实际内存的四倍。或更多。如果您无法创建更多的交换分区,请查看 mkswap 手册页,了解如何创建交换文件。持续的磁盘高速运转是交换空间不足的症状,会导致系统速度变慢,有时会非常严重。或者,这可能是内核 VM 系统行为不端的症状(在这种情况下尝试另一个内核)。
驱动器性能对于交换性能至关重要。如果您的驱动器支持 DMA,请确保已启用 DMA,并在其他方面进行调整以使其性能达到最佳水平。请参阅 hdparm 手册页。慢速驱动器 + 慢速显卡 + 低内存 = 慢速系统。
如果内存紧张,请不要使用 KDE 或 GNOME。这两者都需要大量内存,并且不是仅仅运行 X 所必需的。可以将它们视为可用性增强功能。32MB 可能不够用。64MB 可能还不错,具体取决于正在使用的其他应用程序和其他变量。在大多数情况下,128MB 应该足够了。256MB 或更多才能感到舒适。像 Nautilus 和 gmc 这样的文件管理器也可能很耗内存。
使用轻量级窗口管理器。WindowMaker、BlackBox、IceWM、fvwm(及其变体)、XFce 都以在低内存下表现良好而闻名。肯定还有其他的。尝试一下。 fvwm 通常被认为是其中最轻量级的。
即使没有 KDE 或 GNOME,仍然可以实现非常漂亮的桌面。事实上,即使 KDE 和 GNOME 本身没有运行,大多数 KDE 和 GNOME 应用程序仍然可以使用(假设安装了正确的库)。
不要使用花哨的主题或背景。简洁明了更节省资源。使用纯色背景。避免将像素图或渐变用于任何类型的背景,包括菜单、标题栏等。
使用较小的屏幕尺寸和颜色深度。800x600x16 不会像更高的值那样给 X 带来那么大的压力,并且更易于系统资源。虽然首选 24 位色深,但对于大多数应用程序,您可能不会注意到 16 位色深的差异。
有些应用程序比其他应用程序需要更多的内存。一些著名的内存大户是 Netscape、Mozilla、办公套件和 the Gimp。Netscape 比 Mozilla 更快(但不如它好)。Netscape-Navigator 比 Netscape-Communicator 使用更少的内存。在不使用这些应用程序时关闭它们。尽可能使用文本浏览器,如 lynx 或 w3m,例如阅读本地安装的 HTML 文档。速度更快,并且需要的内存更少。
此外,对于邮件(mutt 或 pine)和新闻(slrn 或 trn),也使用基于文本的客户端。同样,速度更快,使用的内存更少,而且这些本质上毕竟是基于文本的协议。
rxvt 比 xterm、konsole 或 gnome-terminal 使用更少的内存。
如果您长时间运行 X 会话(如几天或几周),请偶尔重启 X 以释放作为缓存占用的内存。
禁用 “backing store” 和 “save-unders” 以减少内存使用(尽管会降低性能)。还要检查您的窗口管理器的设置。查看 “Modules” 部分中加载了哪些模块XF86Config也是如此。您的安装可能启用了许多不必要的模块,或者您无法利用的模块(例如 “v4l”,也称为 “Video4Linux”)。
字体服务器可以通过将字体渲染卸载到字体服务器来提供轻微的性能提升,同时释放 X 服务器来执行其他操作。但是,字体服务器也会占用少量额外的内存。因此,您可以尝试这两种方式,看看是否有区别。
最后,RAM 现在很便宜。买一些吧 ;-) 还有新的硬盘。
RAM 对于 X 来说仍然太低了吗?看看 tinyX:http://www.superant.com/smalllinux/tinyX01.html。据报道,它可以在低至 4MB 内存中运行。
X 对网络不是很友好。换句话说,它是一个带宽消耗大户。这在局域网情况下应该不是问题,但如果尝试通过 Internet 使用 X 可能会成为问题。
lbxproxy,低带宽 X 代理,利用各种优化来提高在低带宽或高延迟情况下的性能。请参阅手册页。
VNC(虚拟网络计算)在远程系统上显示应用程序方面具有与 X 相同的一些优势,但对网络更友好。您的 Linux 安装应该同时提供 VNC 客户端和服务器软件包。
其他提高性能的技巧
使用 xset 来加速键盘。这可以使系统感觉更灵敏,即使它实际上并非如此。默认设置对我来说总是显得迟缓。
使用 renice 命令来提高 X 的优先级。其他平台赋予 GUI 高调度优先级以实现更好的响应能力。但这会以其他进程为代价。Linux 是一张白板。您可能还需要包括字体服务器(如果正在使用)以及关键的 KDE 和 GNOME 进程。
nice -n -10 X :0 |
这对于主要处于空闲状态的系统来说不会有太大作用。
这对于 startx 来说效果不佳,因为 X 以 root 用户身份运行,而您不是 root 用户,对吧?因此,您必须使用类似 sudo 的命令才能自动完成此操作。