swap、buffer、cache

[复制链接]
查看11 | 回复0 | 2013-12-18 09:29:12 | 显示全部楼层 |阅读模式
Linux中的内存是如何使用的呢?
有应用读取磁盘时,由系统把相关数据从磁盘读取到内存,如果物理内存不够,则把内存中的部分数据导入磁盘,从而把磁盘的部分空间当做虚拟的内存来使用,这部分硬盘空间称为SWAP。
如果给所有应用分配足够内存后,物理内存还有剩余,Linux会尽量再利用这些空闲内存,以提高整体I/O效率。办法就是把这部分剩余物理内存再划分为cache和buffer两个部分加以利用。
从磁盘读取到内存的数据在被相关应用程序读取后,如果有剩余物理内存,则这部分数据会存入cache,以备第2次读取时,避免重新读取磁盘。
当一个应用程序在内存中修改过数据后,因为写入磁盘的速度相对较低,在有空闲内存的情况下,这些数据会先存入buffer,在以后某个时间点再写入磁盘。从而应用程序可以继续后面的操作,不必等待这些数据写入磁盘的动作完成。
如果某个时刻,系统需要更多的内存,则会把cache部分擦除,并把buffer中的内容写入磁盘,从而把这两部分内存释放给系统用,这样再次读取cache中的内容时,就需要重新从磁盘读取了。
在某种意义上,cache和buffer两部分内存也可以看做是额外的空闲内存。
——引自《基于Linux的Oracle数据库管理》
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行