首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | linux相关 | linux认证 | 下载中心 | 专题
oklinux
 系统管理:中文环境 系统管理 桌面应用 内核技术 Linux基础:安装配置 常用命令 经验技巧 软件应用 Linux数据库:Mysql POSTGRE
 网络管理:网络安全 网络应用 Linux服务器 编程开发:PHP CC++ Python Perl SHELL 嵌入式开发 | PHP基础 PHP技巧 PHP应用 PHP文摘
 首页 linux资讯动态 Linux专题 | 其他Unix Linux解决方案 硬件相关 Linux认证 企业应用 Apache | 相关下载:软路由 参考手册 开发工具
 → 当前位置:首页>系统管理>系统管理>正文

如何降低Linux 内存开销

OKLinux www.oklinux.cn 2007-03-12 来源:中国IT实验室收集整理 收藏本文

    物理内存不足可能会严重影响 Linux® 的性能。在本文中,我们将学习如何精确地度量 Linux 系统所使用的内存量。还将以 Ubuntu 系统为例学习有关降低内存需求的实践建议。

    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,并使用文件管理器来浏览文件夹,又在 OpenOffice 中打开一个相当大的 Microsoft Word 格式的文档。(在本文剩余的部分中,将这种设置称为 轻量级使用水平(light usage level)。)

一旦成功加载这些之后, free 命令将如清单 2 所示。


清单 2. Ubuntu 在 256MB 机器上的轻量级使用水平
ubuntu # free
             total       used       free     shared    buffers     cached
Mem:        255988     252196       3792          0      21276      87500
-/+ buffers/cache:     143420     112568
Swap:       746980      18676     728304

    可以看到内存部分稍有变化。现在应用程序使用了 143MB 的物理内存,其余的内存均被缓冲区占用;另外,系统现在使用了 18MB 的交换空间。在这种轻量级的办公任务情况下,系统的可用性通常看起来很不错,但是已经没有太多发展空间了,可能无法进行需要资源更多的操作,例如编辑巨大的数字照片或视频文件,因为系统很快就会在处理时发生停歇。

    为了了解系统在只有 128MB 时的执行情况,我重新引导了系统,并在内核行后面附加了 mem=128M 选项,就像前面介绍的一样。在与清单 1 同样的基本使用水平上,使用 128MB RAM 得到的结果如清单 3 所示。


清单 3. Ubuntu 在 128MB 机器上的基本使用水平
ubuntu # free
             total       used       free     shared    buffers     cached
Mem:        126100     121464       4636          0       1636      37000
-/+ buffers/cache:      82828      43272
Swap:       746980      17924     729056

    可以看到现在只使用了 128MB 内存,已经开始使用交换空间了,并且现在实际上还没有开始执行任何操作。

启动同一组应用程序产生的结果如清单 4 所示。


清单 4. Ubuntu 在 128MB 机器上的轻量级使用水平
ubuntu # free
             total       used       free     shared    buffers     cached
Mem:        126100     123608       2492          0        392      51208
-/+ buffers/cache:      72008      54092
Swap:       746980      98452     648528

 

[1] [2] [3] 下一页  

共7页: 上一页 1 [2] [3] [4] [5] [6] [7] 下一页
上一篇:运用RedHat的Kickstart升级Linux系统   下一篇:在Redhat9.0中将vsftpd并入xinetd
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭

相关文章
·运用RedHat的Kickstart升级Linux系统
·在Redhat9.0中将vsftpd并入xinetd
·三种嵌入式操作系统的深入分析与比较
·几种Linux嵌入式开发环境的简单介绍
·Ubuntu Linux操作系统中的用户管理
·介绍几种Linux备份方法便于日常管理
·Linux用户(User)和用户组管理概述
·利用FAM和IMON在Linux下实现数据复制
·Linux系统特殊文件--目录概念及使用
·Linux任务控制的几个技巧
发表评论
密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)
站内搜索
阅读排行榜
·linux环境变量设置及保存
·Linux用户(User)和用户
·Linux中的冲突问题及其应
·红旗Linux上的iptables使
·硬盘扇区的读写函数及其调
·RedHat linux inittab详解
·菜鸟入门 个人学习Linux知
·Perfect Console 计划
·Linux中消除扬声器的嘟嘟
·Linux下用hdparm优化硬盘
最新文章
·如何在Subversion中运行ho
·Linux系统特殊文件--目录
·linux环境变量设置及保存
·Linux用户(User)和用户
·Ubuntu Linux操作系统中的
·几种Linux嵌入式开发环境
·在Redhat9.0中将vsftpd并
·运用RedHat的Kickstart升
·三种嵌入式操作系统的深入
·介绍几种Linux备份方法便
·利用FAM和IMON在Linux下实
·Linux任务控制的几个技巧
·有关Linux系统下单用户启
·提高Linux系统性能加速网
·Linux操作系统中的七件超

设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2007 All rights reserved OKLinux.Cn 版权所有
合作联系 QQ:18743986 Email:arlan8005#163.com