linux可以查看内存使用的命令,Linux查看内存命令free

[root@centos192 ~]# free

total used free shared buffers cached

Mem: 3924792 2390256 1534536 0 372432 1623832

-/+ buffers/cache: 393992 3530800

Swap: 7574520 0 7574520

1 free的输出解释

默认内存单位是KB。

第一行时标题,第二行是操作系统对机器物理内存使用情况的认识,第三行是一个进程对机器物理内存使用情况的认识,第四行是交换分区使用情况。

先看第2行

当前机器的物理内存(total)共有:3924792KB;

其中(used)已经使用了2390256KB;

还有1534536KB是(free)空闲的。

显然total=used+free。

shared是为了兼容输出格式而保留的一个遗留项,现在已经没有意义,始终为0,不必追究。

buffers是操作系统为了提高IO性能而把一些要写到硬盘上的数据缓存到内存中,这部分内存的大小就是buffers。

cached与buffers类似,只是缓存的是从硬盘读取的数据。

第3行,是程序可以使用的内存情况,因为操作系统随时可以把buffers中的数据写入硬盘然后释放这部分内存,也可以随时把cahced的内存部分释放,所以这两部分内存只是为了提高性能,不是必须的。从一个一个进程角度来看,可以忽略这两部分的存在,第三行就是从一个进程角度看到的物理内存使用情况,也就是把buffers和cached这两部分当做是空闲可用的来看待。

第4行,是交换分区的使用情况,当物理内存不充足时,才会使用交换分区,无需再解释。

2 手动释放buffers和cached内存

释放buffers前一定记得使用sync把未写入硬盘的数据更新到硬盘,防止数据丢失。

#sync

#echo 3 > /proc/sys/vm/drop_caches

我们看看释放后的效果:

[root@centos192 ~]# echo 3 > /proc/sys/vm/drop_caches

[root@centos192 ~]# free -m

total used free shared buffers cached

Mem: 3832 299 3533 0 0 23

-/+ buffers/cache: 275 3557

Swap: 7396 0 7396

可以看到,buffers被完全释放了,cached可能还有一部分无法释放。

/proc/sys/vm/drop_caches是个开关,设置其内容就可以控制内核对缓存的处理,具体含义如下:

To free pagecache:

* echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes:

* echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:

* echo 3 > /proc/sys/vm/drop_caches

需要说明的是,除非特殊情况,不需要手动清理缓存,应该让操作系统自己判断如何利用缓存。

如果需要更改系统的默认动作,可以设置/etc/sysctl.conf文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值