unix下如何查出进程占用内存,从大到小的前十位

2024-12-11 19:45:39
推荐回答(3个)
回答1:

使用svmon命令,可与 -u、-p、-g 或 -v 标志来更改排序规则。如果不了解就输入 svmon -help 看看多有什么规则。
按你的题目来,比如说我获得使用内存前10个进程,命令为:
svmon -Pt10 | perl -e 'while(<>){print if($.==2||$&&&!$s++);$.=0 if(/^-+$/)}'

补充,svmon命令是在AIX系统上的。ps命令比较通用,楼主既然接触了Unix,肯定比较了解这个命令,我接触的还是AIX居多,如果楼主没装,可以将svmon换做ps。另外,本人觉得以perl强大的功能和卓越的性能,应该已经成为每一部UNIX工作站必备的标准工具了。

对楼主疑问的回答:
这个命令本身是按使用内存多少降序排列的。而且列出了具体的使用情况。你注意看里面的参数,Inuse一栏显示的是进程使用的段在实际内存中的总页数,pin一栏显示的是锁定的总页数,Pgsp一栏显示的是调用空间总页数,Virtual一栏显示的进程在虚拟空间总页数,注意,AIX中默认4k为一页。这个命令是非常详细的列出了进程使用内存的情况。
正常来说,由于Unix和windows管理内存方式的不同,Unix经常有内存快被耗光的假象,你运行ps aux命令,注意rss栏,看是否存在内存泄露情况。
我也是正在自学AIX,时间还不长,大家经常交流,共同进步吧。

回答2:

  1. 在桌面上右键点击,选择在终端打开进入命令行

  2. 在命令行输入top,即可进入一个监控界面,可以看到使用内存的排行

  3. top命令还可以查看cpu的使用率等,显示信息比较多

回答3:

给一楼:

1:不是每个人每个电脑都装着AIX,solaris就用pmap吧
建议用vmstat或者直接用ps代替svmon,这样更通用些
命令的使用方法 -help自己学

2:不是每个人每个电脑都有perl 建议楼上把命令换成grep吧,
如果不懂正则,也别grep了,直接看第一个命令的结果就是

to SL0819 :加你好友了 以后有问题还请多多指教!