性能指标之资源指标-内存-判断占用内存多的进程

本文介绍如何使用nmon、svmon及ps等工具监测Linux系统中进程的物理内存占用情况,包括查看消耗物理内存最多的进程、PagingSpace占用情况等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


物理内存占用


Nmon sheet


根据经验,nmon的top sheet -- Memory by command最直观,也最容易直接看出哪个进程消耗的内存资源多。

然后采用类似ps –ef| grep java这样的命令查看这个进程具体是什么内容。


另外,有不少命令也可以看哪个进程占用物理内存多,但讲真,经常用命令行去看,但经常看不出来什么结果。例如下图,每个进程消耗的物理内存似乎差距不大,虽然这个例子中服务器上跑oracle这样的系统软件,内存都是oracle占的,但即使不跑oracle,这些进程的内存占用往往也差距不大,因为一个应用常常是由N个进程组成,而我们初步判断谁占用内存多时,最想知道的是哪个应用。


Svmon


列出消耗物理内存前十的进程

svmon -Pt10 | perl -e 'while(<>){print if($.==2||$&&&!$s++);$.=0 if(/^-+$/)}'        


解释一下inuse和virtual。Svmon里面的inuse指的是这个进程消耗的计算内存+非计算内存,并且是在物理内存里的那一部分(事实上,非计算内存也不会换页到Paging Space里面)。而virtual指的是进程空间里面的分页,这个分页也许在物理内存,也许在Paging Space。假如说一个进程使用的分页都在物理内存的话,inuse>=virtual,因为此时inuse里面有文件缓存,而virtual里面没有文件缓存,文件缓存是操作系统给缓存的,和进程空间没关系。


相似的名字在不同命令当中的含义是不一样的,一定要搞清楚这个字段的真正含义


ps


ps aux | head -1 ; ps aux | sort -rn +4 | head -10     

按照占用物理内存的百分比排序,列出前十个进程。



Nmon command


nmon --> t (top processes) --> 4 (order in process size)



Paging Space占用


用到Paging Space不一定说明这个进程占用内存多,很有很能是它被其他进程挤出来的。查出谁在用Paging Space,大概率是查出谁是受害者。


按照占用Paging Space的进程排序

svmon -P -O sortseg=pgsp         

 

检查哪个进程引起的Paging到Paging Space(IBM script)。脚本发现po这个指标大于50的时候保存进程相关信息退出



Paging Space一旦为这个分页分配了磁盘空间,就不会因为这个分页换回物理内存而释放,因此经常可以看到Paging Space的利用率不为0,但此时物理内存占用也不多。Paging Space的利用率不为0只能说明历史上有物理内存不足的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值