首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 基础>文章内容
初学者该如何熟悉 Linux 内存管理
来源:linuxdby 作者:何勤童 发布时间:2007-05-22  

内存是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的程序只看到大量的可用内存,而不关心哪部分在磁盘上。当然,读写硬盘比真的内存慢(大约慢千倍),所以程序运行较慢。用做虚拟内存的这部分硬盘叫对换空间。

 

虚拟内存技术不仅仅让我们可以使用更多的内存,它还提供了下面这些功能: 

 

1.巨大的寻址空间

操作系统让系统看上去有比实际内存大得多的内存空间。虚拟内存可以是系统中实际物理空间的许多倍。每个进程运行在其独立的虚拟地址空间中,这些虚拟空间相互之间都完全隔离开来,所以进程间不会互相影响。同时,硬件虚拟内存机构可以将内存的某些区域设置成不可写,这样可以保护代码与数据不会受恶意程序的干扰。 

 

2.公平的物理内存分配

内存管理子系统允许系统中每个运行的进程公平地共享系统中的物理内存。 

 

共3页: 上一页 1 [2] [3] 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·linux下bash入门基础
·MBR如果被覆盖了怎麽办?
·Linux操作系统里Configure参数讲
·linux应用技巧集囊(新手遍)
·Linux操作系统下硬盘分区的最佳
·新手入门 Linux菜鸟必学的60个命
·调试工具GDB基本知识全接触
·Linux操作系统Gaim玩转QQ与MSN--
·新手学堂:学习Linux系统的十一
·新手必学 Linux常见系统调用列表
·新手入门:怎么样掌握Linux系统
·unix入门材料(3),(4)
  相关文章
·linux下bash入门基础
·Bash中对变量的操作应用
·新手必学 Linux常见系统调用列表
·Linu系统管理 新手要了解的十个
·怎么样设置UNIX/LINUX中的文件及
·unix入门材料(3),(4)
·unix入门材料(1),(2)
·Linux下安装JDK与VI编辑器的基本
·新手入门 Linux菜鸟必学的60个命
·Linux教程 使用Ghost对Linux进行
·新手入门:怎么样掌握Linux系统
·Linux操作系统下硬盘分区的最佳

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!