我是靠谱客的博主 畅快外套,最近开发中收集的这篇文章主要介绍性能指标之资源指标-内存-判断占用内存多的进程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


物理内存占用


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只能说明历史上有物理内存不足的情况。

最后

以上就是畅快外套为你收集整理的性能指标之资源指标-内存-判断占用内存多的进程的全部内容,希望文章能够帮你解决性能指标之资源指标-内存-判断占用内存多的进程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部