远方

Linux的内存管理

Linux吃掉我的内存》

Linux

使用free命令查看Linux系统内存使用情况时,会发现内存使用一直处于较高的水平,即使此时系统并没有运行多少软件。

free -m #查看内存使用情况。-m选项表示使用MB为单位

buffer:A buffer is something that has yet to be "written" to disk. 

cache:A cache is something that has been "read" from the disk and stored for later use.

buffer用于存放要输出到磁盘的数据,而cache是从磁盘读出存放到内存中待今后使用的数据。它们的引入均是为了提供IO的性能。

Linux 内存管理做了很多精心的设计,除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换),还采取了两种主要Cache方式:Buffer Cache和Page Cache,目的就是为了提升磁盘IO的性能。从低速的块设备上读取数据会暂时保存在内存中,即使数据在当时已经不再需要了,但在应用程序下一次访问该数据时,它可以从内存中直接读取,从而绕开低速的块设备,从而提高系统的整体性能。而Linux会充分利用这些空闲的内存,设计思想是内存空闲还不如拿来多缓存一些数据,等下次程序再次访问这些数据速度就快了,而如果程序要使用内存而系统中内存又不足时,这时不是使用交换分区,而是快速回收部分缓存,将它们留给用户程序使用。

buffers/cached真是百益而无一害,真正的坏处可能让用户产生一种错觉——Linux耗内存!其实不然,Linux并没有吃掉你的内存,只要还未使用到交换分区。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Catalog
标签列表
最新
最热
常用网站
站点信息
  • 文章总数:2605
  • 页面总数:1
  • 分类总数:21
  • 标签总数:668
  • 评论总数:6
  • 浏览总数:3464920
Archives
Copyright © 2017-2023 WWW.MY889.COM All Rights Reserved.
推荐使用 Chrome 浏览器浏览本站
沪ICP备17052342号-1
Sitemap XML