Linux内存中Swap和Buffer.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux内存中Swap和Buffer

Linux 内存中Swap 和 Buffer Cache 机制    Linux的产生与发展,更多的应用与服务器,那么对于Linux的各个管理机制要 非常清楚,一个完整的Linux系统主要有存储管理,内存管理,文件系统和进程 管理等几方面组成,贴出一些以前学习过的一个很好的文章。与大家共享!以下 主要说明Swap和Buffer Cache机制 Linux支持虚拟内存(virtual memory),虚拟内存是指使用磁盘当作RAM 的扩展,这样可用的内存的大小就相应地增大了。内核会将暂时不用的内存块的 内容写到硬盘上,这样一来,这块内存就可用于其它目的。当需要用到原始的内 容时,它们被重新读入内存。这些操作对用户来说是完全透明的;Linux下运行 的程序只是看到有大量的内存可供使用而并没有注意到时不时它们的一部分是 驻留在硬盘上的。当然,读写硬盘要比直接使用真实内存慢得多(要慢数千倍), 所以程序就不会象一直在内存中运行的那样快。用作虚拟内存的硬盘部分被称为 交换空间(Swap Space)。 一般,在交换空间中的页面首先被换入内存;如果此时没有足够的物理内存 来容纳它们又将被交换出来(到其他的交换空间中)。如果没有足够的虚拟内存 来容纳所有这些页面,Linux就会波动而不正常;但经过一段较长的时间Linux 会恢复,但此时系统已不可用了。 有时,尽管有许多的空闲内存,仍然会有许多的交换空间正被使用。这种情 况是有可能发生的,例如如果在某一时刻有进行交换的必要,但后来一个占用很 多物理内存的大进程结束并释放内存时。被交换出的数据并不会自动地交换进内 存,除非有这个需要时。此时物理内存会在一段时间内保持空闲状态。对此并没 有什么可担心的,但是知道了是怎么一回事,也就无所谓了。 许多操作系统使用了虚拟内存的方法。因为它们仅在运行时才需要交换空 间,以解决不会在同一时间使用交换空间,因此,除了当前正在运行的操作系统 的交换空间,其它的就是一种浪费。所以让它们共享一个交换空间将会更有效率。 注意,如果会有几个人同时使用这个系统,他们都将消耗内存。然而,如果 两个人同时运行一个程序,内存消耗的总量并不是翻倍,因为代码页以及共享的 库只存在一份。 Linux系统常常动不动就使用交换空间,以保持尽可能多的空闲物理内存。 即使并没有什么事情需要内存,Linux也会交换出暂时不用的内存页面。这可以 避免等待交换所需的时间:当磁盘闲着,就可以提前做好交换。 可以将交换空间分散在几个硬盘之上。针对相关磁盘的速度以及对磁盘的访 问模式,这样做可以提高性能。 与访问(真正的)的内存相比,磁盘的读写是很慢的。另外,在相应较短的 时间内多次读磁盘同样的部分也是常有的事。例如,某人也许首先阅读了一段 e-mail消息,然后为了答复又将这段消息读入编辑器中,然后又在将这个消息 拷贝到文件夹中时,使得邮件程序又一次读入它。或者考虑一下在一个有着许多 用户的系统中 ls命令会被使用多少次。通过将信息从磁盘上仅读入一次并将其 存于内存中,除了第一次读以外,可以加快所有其它读的速度。这叫作磁盘缓冲 (disk buffering),被用作此目的的内存称为高速缓冲(Buffer Cache)。 但是,由于内存是一种有限而又不充足的资源,高速缓冲不可能做的很大(它 不可能包容要用到的所有数据)。当缓冲充满了数据时,其中最长时间不用的数 据将被舍弃以腾出内存空间用于新的数据。 对写磁盘操作来说磁盘缓冲技术同样有效。一方面,被写入磁盘的数据常常 会很快地又被读出(例如,原代码文件被保存到一个文件中,又被编译器读入), 所以将要被写的数据放入缓冲中是个好主意。另一方面,通过将数据放入缓冲中, 而不是将其立刻写入磁盘,程序可以加快运行的速度。以后,写的操作可以在后 台完成,而不会拖延程序的执行。 大多数操作系统都有高速缓冲(尽管可能称呼不同),但是并不是都遵守上 面的原理。有些是直接写(write-through):数据将被立刻写入磁盘(当然, 数据也被放入缓存中)。如果写操作是在以后做的,那么该缓存被称为后台写 (write-back)。后台写比直接写更有效,但也容易出错:如果机器崩溃,或者 突然掉电,缓冲中改变过的数据就被丢失了。如果仍未被写入的数据含有重要的 薄记信息,这甚至可能意味着文件系统(如果有的话)已不完整。 针对以上的原因,出现了很多的日志文件系统,数据在缓冲区修改后,同时 会被文件系统记录修改信息,这样

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档