科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何有效降低Linux操作系统的内存开销

如何有效降低Linux操作系统的内存开销

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Linux 广受追捧的一个优点是它比 Microsoft Windows的效率更高,因此在不太前沿的硬件上也能很好地执行。本文将介绍如何对Linux系统进行裁减,以便在小容量的硬件上获得更好的性能。

作者:korn 来源:赛迪网 2008年6月27日

关键字: 命令行 Linux 技巧

  • 评论
  • 分享微博
  • 分享邮件

清单 9. Kubuntu 在 256MB 机器上的基本使用水平

kubuntu # free

total used free shared buffers cached

Mem: 255988 244736 11252 0 7612 160008

-/+ buffers/cache: 77116 178872

Swap: 746980 0 746980

步骤 2:选择适当的应用程序

选定了发行版之后,接下来的事情是选择要使用的应用程序组合。不同应用程序的内存需求可能差异很大;有时需要在规模和功能之间进行权衡,但是在另外一些情况下,即使功能相同的应用程序对内存的需求也可能存在巨大差异。

为了度量本文的内存使用情况,我们将使用 exmap 工具。该工具比 ps 或 top 更精确,因为它考虑了多个应用程序使用的共享库。例如,如果两个应用程序使用了相同的共享库,各占 1MB 内存,ps 会显示这两个应用程序均额外使用了 1MB 内存,exmap 则能更准确地显示每个应用程序都只使用了 500 KB 内存。这种精确性对于评价 KDE 和 GNOME 之类的桌面环境非常重要,因为在这些情况下应用程序之间会大量使用共享库。

对于在下面几部分讨论的每个应用程序,我测量了 exmap 所生成的 resident 和 effective resident 值。resident 值表示进程使用的物理内存总量,包括其他进程使用的共享库;该值通常与 ps 或 top 输出的值相同。effective resident 值是将共享库占用的内存平均分配给各个共享进程得到的;从指定进程所消耗的系统内存角度来看,该值更加精确。

还需要注意,在确定进程的全部内存开销时,还应该考虑 mapped 和 effective mapped 的值,它是进程中位于交换空间中的那些部分。mapped 值与 resident 值类似,但是它针对交换空间中的页面,而不是物理内存中的页面。因此要查看不考虑共享库时的数据,可以将 resident 和 mapped 值加在一起;要查看考虑对共享库时的数据,就需要将 effective resident 和 effective mapped 值加在一起。在制作该表时,并没有 记录这些值,这是因为对于我们的测试来说,交换空间中并没有什么进程,因此,对于这些列,exmap 命令输出结果的值均为 0。

Web 浏览器

对于表 1 中的各个浏览器,均启动了这个程序,并打开了 developerWorks 主页,然后等待它们全部显示出来。结果如表 1 所示。

表 1. Web 浏览器的内存使用情况比较

应用程序 Effective resident 内存(KB) Resident 内存(KB)

Firefox 27708 35068

Opera 20477 27816

Konqueror 13479 29748

Dillo 2776 6888

Lynx 1101 1540

从该表可以看出,这些浏览器的内存使用情况存在很大差异,内存需求最高的浏览器(Firefox)使用的内存比需求最低的浏览器(Lynx)多了大约 27 倍。这并不是非常公平的比较,因为 Lynx 并不能实现同样的功能(举例来说,它甚至不能显示图形),但这说明,可以根据需求极大地降低内存的使用情况。尽管表 1 中列出的前 3 个浏览器的功能与第一个浏览器的功能多少有些相同,但 Opera 使用的内存大约只有 Firefox 的 2/3,Konqueror 使用的内存比 Firefox 少一半。

对于要求不太高的使用需求来说,Dillo 是介于功能完善的浏览器和只有少量开销的 Lynx 之间的折中方案。Dillo 提供了一个 GUI;但在默认状态下其功能相当有限,没有其他插件时甚至不支持 SSL!

还需要注意我们对共享内存的使用也进行了比较,Konqueror 的执行情况比 Firefox 更好,它使用的内存大约少 14MB;然而,如果查看一下总体使用情况,Konqueror 也仍然高于 Firefox,但差距不大,大约只有 5MB。这是因为 Konqueror 大量地使用了 KDE 共享库,使用 KDE 桌面时,这些库被加载到各种应用程序。然而,如果没有使用任何其他 KDE 应用程序,Opera 将是比 KDE 更佳的选择。稍后我们将更加详细地讨论这个问题。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章