linux看内存使用

free 命令解释

             total       used       free     shared    buffers     cached

Mem:      33573032   33036556     536476        308    1086852   17157592

-/+ buffers/cache:   14792112   18780920

Swap:      2103292      87940    2015352

第一行是内存总体使用情况。

第二行表示除开 buffers和cache 的使用情况

第三行是交换区使用情况。

linux 策略是内存最大使用,将应用缓存也放在内存中,少读交换区。 缓存是可以被释放的,有其它应用启动时就可以挤出来,所以第二行的 free 是真实的还可以被使用的内存。

但这里有个问题,就是有些应用不怎么运行时,本身会释放内存,也就是它占用的内存比实际需要的内存要少,当它运行起来时,就需要更多的内存,这时拿不到内存的话,程序就会报错。

交换区也可看作内存的延伸,只是比较慢。所以第二行的 free 加上 第三行的 free 后比较小的话,就很危险了,程序随时会报错。

例如 java 程序,设了内存最大使用 2G,平时不运行时,实际内存占用较少(指减去buffers和cache,在top命令显示RES一列),运行起来时就要向系统索取 2G 内存,如果内存不足,就会抛相应的内存异常。

还有情况是,buffer/cache 是某些网络和必要文件的缓存,这种缓存是释放不了的,不然会报错。

看进程内存使用

top  shift+m 按内存使用率排序  VIRT:应用虚拟内存空间大小, RES:物理内存

pmap <pid>  可查看进程详细内存使用情况,非常细,平时不太需要用到

ps -eo pid,user,%mem,vsz,rss|grep <pid>   vsz: 应用虚拟内存空间大小  rss: 物理内存

ps -aux|grep <pid> 与上一命令基本等效。

cat /proc/<pid>/status

vmsize 应用虚拟内存空间大小,对应ps的 vsz;vmrss 物理内存

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值