linux系统下top命令进行内存监控

今天进行压力测试,测试进行了两波后,发现使用top命令监控系统性能,mem中used很高:

一段时间甚至接近total

很疑惑到底为什么,开始怀疑是内存泄露,但是服务已经全部杀掉后used仍然保持很高。

查询了下linux下使用top命令进行监控的详细解释,网上对这个的解释很多很详细,实际上并非服务内存泄露的原因,而是linux内核对于内存的管理造成的:

1. linux中内核对于已经使用了的内存,当期被服务或应用释放掉后,未必会将其放在free中,而是可能将其放在buffers和cached中

2. top中显示的men中 used  free 实际上都是内核角度的内存分配情况  也就是虽然used 使用很高 但是实际上服务或者应用是可以使用buffers和cached的内存的

当top中看到的free不多了的时候,内核会从buffers和cached中吐一部分出来支援free

3. 可以使用 free -m 命令进行进一步的查看:

图中可见:

buffer/cache 中的used 实际上才是实际被使用的内存大小,而其下的free  31360 是实际服务/应用可用的内存,mem与top中的mem是一样的,也就是mem中的free+buffers+cached才是buffer/cache中的 free

后续压测中也验证了这一点,当mem中free较多时,优先使用free的实际物理内存,buffers和cached基本不变,当free快要耗尽时,buffers和cached变小,free会增加一些。

当然,如果buffers和cached也耗尽了,系统就会使用swap虚拟内存。

 

综上,linux系统下进行top检测内存的使用情况,不能完全看mem中的used 和 free  还是需要结合 free -m  和实际的应用进行具体分析。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值