初学者该如何熟悉 Linux 内存管理.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
初学者该如何熟悉 Linux 内存管理 作者:何勤童 来源:linuxdby (2007-02-07 16:36:50) 内存是Linux内核所管理的最重要的资源之一,内存管理系统是操作系统中最为重要的部分。对于Linux的初学者来说,熟悉Linux的内存管理非常重要。 进程是运行于虚拟地址空间的一个程序。可以说,任何在Linux系统下运行的程序都是进程。 Linux系统中包括交互进程和批处理进程。交互进程是由Shell控制和运行的,既可以在前台运行,也可以在后台运行。批处理进程不属于某个终端,被提 交到一个队列中以便顺序执行。大多数的进程都需要虚拟内存。 一般需要多少内存 对于典型的Linux应用系统,128MB内存是合理的选择。如果不运行X-Window系统,那么在一台特殊用途的机器(比如用于调试设备驱动程序的“崩溃和烧毁”系统)上仅用8MB内存就可以工作。 笔者曾经做过实验,在128MB和256MB下编译内核所需的时间几乎一样,都少于 3分半钟(笔者的Linux发行版本是Mandrake Linux 9.1,内核2.4.21)。在一个只有8MB内存的系统上,编译需要的时间会更长一些。类似Web浏览器这样的多媒体应用软件,在内存充足时会运行得更 流畅,特别是在一边编译程序,一边上网浏览的时候更是如此。因此,如果只有128MB内存,则预期的性能会有所降低。类似地,如果要开发消耗大量内存的应 用程序,可能会要求更多的内存。所以,需要多少内存由工作需求来决定。 实时监控内存使用情况 1.在命令行使用“Free”命令监控内存使用情况 #free total used free shared buffers cached Mem: 256024 192284 63740 0 10676 101004 -/+ buffers/cache: 80604 75420 Swap: 522072 0 522072 上面代码给出了一个256MB的RAM和512MB交换空间的系统情况。第三行输出 (Mem:)显示物理内存。Total列不显示核心使用的物理内存(通常大约1MB)。Used列显示被使用的内存总额(第二行不计缓冲)。Free列显 示全部没有使用的内存。Shared列显示多个进程共享的内存总额。Buffers列显示磁盘缓存的当前大小。第五行(Swap:)对换空间,显示的信息 类似上面。如果这行为全0,那么就没有使用对换空间。在缺省的状态下,free命令以千字节(也就是1024字节为单位)来显示内存使用情况。使用-h参 数,以字节为单位显内存使用情况;或者使用-m参数,以兆字节为单位显示内存使用情况。还可以通过-s参数,使用命令来不间断地监视内存使用情况: #free -b -s5 这个命令将会在终端窗口中连续不断地报告内存的使用情况,每5秒钟更新一次。 2.使甩vmstat命令监视虚拟内存使用情况 # vmstat procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 63692 10704 101008 0 0 239 42 126 105 48 45 7 0 vmstat()命令是一个通用监控程序,是Virtual Meomory Statistics(虚拟内存统计)的缩写。如果使用vmstat命令的时候没有使用任何命令行参数,将会得到一个一次性的报告。vmstat命令报告 主要的活动类型有进程(procs)、内存(以千字节为单位)、交换分区(以千字节为单位)、来自块设备(硬盘驱动器)的输入输出量、系统中断(每秒钟发 生的次数),以及中央处理单元(CPU)分配给用户、系统和空闲时分别占用的比例。 虚拟内存实现的机制 存储管理子系统是操作系统中最重要的组成部分之一。在早期计算时代,由于人们所需要的内存数 目远远大于物理内存,因此设计出了各种各样的策略来解决此问题,其中最成功的就是虚拟内存技术,它使得系统中有限的物理内存竞争进程所需内存空间得到满 足。虚拟内存通过在各个进程之间共享内存,而使系统看起来有多于实际内存的内存容量。Linux支持虚拟内存, 就是使用磁盘作为RAM的扩展,使可用内存相应地有效扩大。核心把当前不用的内存块存到硬盘,腾出内存给其它目的。当原来的内容又要使用时,再读回内存。 运行于Linux的程序只看到大量的可用内存,而不关心哪部分在磁盘上。当然,读写硬盘比真的内存慢(大约慢千倍),所以程序运行较慢。用做虚拟内存的这 部分硬盘叫对换空间。 虚拟内存技术

文档评论(0)

word.ppt文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档