您的位置:首页 > 其它

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

2017-03-20 09:47 429 查看


物理内存占用

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只能说明历史上有物理内存不足的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: