ps -eo pid,pcpu,pmem,args|grep $SWDIR

ps   -eo   pid   pcpu   pmem   rss   

pcpu是CPU利用率,pmem是内存利用率,这两个都是用百分比表示 
rss是实际驻留内存的大小,单位是K

 

==================================

ps -eo vsz,pcpu,stime,pid,args | egrep "$SWDIR/etc/sw*bgmbd" | sort -nr

==============================

 

使用prstat命令 
使用prstat命令检查和显示关于系统中活动进程的信息。 
这个命令也可以显示指定进程的信息,UID,(CPU)IDs,或者处理器设置。默认的prstat命令显示的所有信息是以CPU占用率进行排序的。执行prstat命令: 
# prstat 
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU POCESS/NLWP 
1641 root     4864K 4520K cpu0    59    0   0:00:00 0.5% prstat/1 
  1635 root     1504K 1168K sleep   59    0   0:00:00 0.3% ksh/1 
     9 root     6096K 4072K sleep   59    0   0:00:29 0.1% svc.configd/11 
   566 root       82M   30M sleep   29   10   0:00:36 0.1% java/14 
  1633 root     2232K 1520K sleep   59    0   0:00:00 0.1% in.rlogind/1 
   531 root     8200K 2928K sleep   59    0   0:00:12 0.1% dtgreet/1 
   474 root       21M 7168K sleep   59    0   0:00:11 0.1% Xsun/1 
   236 root     4768K 2184K sleep   59    0   0:00:03 0.0% inetd/4 
    86 root     3504K 1848K sleep   59    0   0:00:01 0.0% nscd/24 
Total: 53 processes, 171 lwps, load averages: 0.02, 0.04, 0.07 
退出prstat命令按q键。 

Prstat报告的内容 
PID                  进程的PID号 
USERNAME          登陆用户名或者进程UID的所有者 
SIZE                 进程总体虚拟内存的大小 
RSS                  进程驻留大小设置Kbyte Mbyte Gbyte. 
STATE               cpu进程运行在那个CPU上。Sleep进程等待一个事件的完成。Run进程在运行队列中zombie进程停止但是父进程并不等待stop进程停止。 
PRI                   进程的优先级 
NICE                 计算优先级的数值 
TIME                 进程累积运行时间 
CPU                  进程最近占用CPU的百分比 
PRCESS/NLWP         进程名/在进程中的轻量进程号 

 

 

 

有的机器上用top

 

 

 

使用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。

这个命令本身是按使用内存多少降序排列的。而且列出了具体的使用情况。你注意看里面的参数,Inuse一栏显示的是进程使用的段在实际内存中的总页数,pin一栏显示的是锁定的总页数,Pgsp一栏显示的是调用空间总页数,Virtual一栏显示的进程在虚拟空间总页数,注意,AIX中默认4k为一页。这个命令是非常详细的列出了进程使用内存的情况。

正常来说,由于Unix和windows管理内存方式的不同,Unix经常有内存快被耗光的假象,你运行ps aux命令,注意rss栏,看是否存在内存泄露情况。

 

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

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

 

你可能感兴趣的:(ps -eo pid,pcpu,pmem,args|grep $SWDIR)