Linux 系统 RAM 使用浅析

摘要

        每次登陆Linux系统用free命令查看系统内存信息时,发现used接近于ram的大小,free列的数值都小的可怜。看起来就像是系统ram不足一样。但实际情况并非如此。

1. Linux系统借用大量空闲的ram用于disk cacheing

        Linux系统会借用大量空闲的ram用于disk cacheing,以提供系统的运行速度和响应速度,这显而易见。当应用程序需要更多的内存时,系统会把disk cacheing的脏数据写入物理磁盘,然后归还ram,这里面有一套完善的机制,能够保证disk cache能迅速的归还ram。
         Linux系统借用大量空闲的ram用于disk cache的机制有百利而无一害,目前没有什么方法也没有必要禁用这套机制。

2. top和free命令中显示的used列的真实含义

        top和free命令显示的used列的值,跟我们通常理解的used是有点差异的,我们通常理解的used,是指“当前正在被应用程序使用的ram”,而通过 top和free命令显示的used列的值,实际上包括两部分,一部分跟我们理解的一样“ 当前正在被应用程序使用的ram ”,还有一部分是“被借用做其他事情,但是如果应用程序需要,能及时归还的ram”,比如用作disk cacheing,是通过在 top和free命令显示出来的“buffers”或“cached”的值来体现的

3. 查看真实的free ram值

        要查看系统可用的ram的值,其实很简单,对于高版本的Linux操作系统,通过free命令看"available"列:
   
   
  1. [root@localhost ~]# free -m
  2. total used free shared buff/cache available
  3. Mem: 1504 1491 13 0 855 869
  4. Swap: 2047 6 2041
        对于低版本的Linux操作系统,通过free命令看  "-/+ buffers/cache":
   
   
  1. [root@localhost ~]# free -m
  2. total used free shared buffers cached
  3. Mem: 1869 523 1346 2 22 194
  4. -/+ buffers/cache: 306 1563
  5. Swap: 2047 0 2047

4. 如何判断系统是否真的缺少ram

        一个ram充裕的linux 系统,是这样的:
        (1)free命令输出的“free”列的值接近与0;
        (2)“userd”列的值接近于“total”;
        (3) "available"或 "-/+ buffers/cache"至少为 “total”的20%以上;
        (4)swap的“used”值极小;

        如果出现下列现象之一,就说明系统的ram不足了:
        (1) "available"或 "-/+ buffers/cache" 列的值接近与0;
        (2) swap的“used”值出现大幅增长;
        (3)通过执行dmesg|grep oom-killer查询到OutOfMemory-killer相关的信息;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值