快速业务通道

Linux内存中Swap和Buffer Cache机制

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-17

  Linux的产生与发展,更多的应用与服务器,那么对于Linux的各个管理机制要非常清楚,一个完整的Linux系统主要有存储管理,内存管理,文件系统和进程管理等几方面组成,贴出一些以前学习过的一个很好的文章.与大家共享!以下主要说明Swap和Buffer Cache机制

  Linux支持虚拟内存(virtual memory),虚拟内存是指使用磁盘当作RAM的扩展,这样可用的内存的大小就相应地增大了.内核会将暂时不用的内存块的内容写到硬盘上,这样一来,这块内存就可用于其它目的.当需要用到原始的内容时,它们被重新读入内存.这些操作对用户来说是完全透明的;Linux下运行的程序只是看到有大量的内存可供使用而并没有注意到时不时它们的一部分是驻留在硬盘上的.当然,读写硬盘要比直接使用真实内存慢得多(要慢数千倍),程序就不会象一直在内存中运行的那样快.用作虚拟内存的硬盘部分被称为交换空间(Swap Space).

  一般,在交换空间中的页面被换入内存;如果此时没有足够的物理内存来容纳它们又将被交换出来(到其他的交换空间中).如果没有足够的虚拟内存来容纳所有这些页面,Linux就会波动而不正常;但经过一段较长的时间Linux会恢复,但此时系统已不可用了.

  有时,尽管有许多的空闲内存,仍然会有许多的交换空间正被使用.这种情况是有可能发生的,例如如果在某一时刻有进行交换的必要,但后来一个占用很多物理内存的大进程结束并释放内存时.被交换出的数据并不会自动地交换进内存,除非有这个需要时.此时物理内存会在一段时间内保持空闲状态.对此并没有什么可担心的,但是知道了是怎么一回事,也就无所谓了.

  许多操作系统使用了虚拟内存的方法.它们仅在运行时才需要交换空间,以解决不会在同一时间使用交换空间,因此,除了当前正在运行的操作系统的交换空间,其它的就是一种浪费.让它们共享一个交换空间将会更有效率.

  注意,如果会有几个人同时使用这个系统,他们都将消耗内存.然而,如果两个人同时运行一个程序,内存消耗的总量并不是翻倍,代码页以及共享的库只存在一份.

  Linux系统常常动不动就使用交换空间,以保持尽可能多的空闲物理内存.即使并没有什么事情需要内存,Linux也会交换出暂时不用的内存页面.这可以避免等待交换所需的时间:当磁盘闲着,就可以提前做好交换.

  编辑推荐:合理配置SAMBA 让Unix与Windows轻松共享

  可以将交换空间分散在几个硬盘之上.针对相关磁盘的速度以及对磁盘的访问模式,这样做可以提高性能.

  与访问(真正的)的内存相比,磁盘的读写是很慢的.另外,在相应较短的时间内多次读磁盘同样的部分也是常有的事.例如,某人也许阅读了一段e-mail消息,然后为了答复又将这段消息读入编辑器中,然后又在将这个消息拷贝到文件夹中时,邮件程序又一次读入它.或者考虑一下在一个有着许多用户的系统中 ls命令会被使用多少次.通过将信息从磁盘上仅读入一次并将其存于内存中,除了第一次读以外,可以加快所有其它读的速度.这叫作磁盘缓冲(disk buffering),被用作此目的的内存称为高速缓冲(Buffer Cache).

  但是,内存是一种有限而又不充足的资源,高速缓冲不可能做的很大(它不可能包容要用到的所有数据).当缓冲充满了数据时,其中最长时间不用的数据将被舍弃以腾出内存空间用于新的数据.

  对写磁盘操作来说磁盘缓冲技术同样有效.一方面,被写入磁盘的数据常常会很快地又被读出(例如,原代码文件被保存到一个文件中,又被编译器读入),将要被写的数据放入缓冲中是个好主意.另一方面,通过将数据放入缓冲中,而不是将其立刻写入磁盘,程序可以加快运行的速度.以后,写的操作可以在后台完成,而不会拖延程序的执行.

  大多数操作系统都有高速缓冲(尽管可能称呼不同),但是并不是都遵守上面的原理.有些是直接写(write-through):数据将被立刻写

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号