ITPub博客

首页 > 数据库 > Oracle > aix如何查看CPU内存占用前十的进程

aix如何查看CPU内存占用前十的进程

Oracle 作者:q418441117 时间:2017-07-06 21:04:57 0 删除 编辑

首先要查谁用CPU最多:
显示前10个累计占用CPU时间的进程
#ps -e|head -n 1;ps -e|grep -v"TIME|0:"|sort +2b -3 -n -r|head -n 10
显示前10个当前占用CPU时间的进程
#ps -ef|head -n 1;ps -ef|grep -v"C|0:00"|sort +3b -4 -n -r|head -n 10

 

Aix命令:列出使用内存和Cpu前几位的进程 
(1)显示10个消耗cpu最多的进程
  # ps aux |head -1 ;ps aux |sort -rn +2 |head -10
(2)显示10个消耗内存最多的进程
  #ps vx |head -1 ;ps vx |grep -v PID |sort -rn +6 |head -10
(3)显示10个换页最多的进程
  #ps vx |head -1 ;ps vx |grep -v PID |sort -rn +4 |head -10
(4)显示10个消耗存储空间最多的进程
  #ps aux |head -1 ;ps aux |sort -rn +3 |head -10


如何监控进程的内存使用情况(AIX)


AIX监控进程内存使用的工具比较多,个人觉得比较方便的有nmon,svmon,其中svmon是AIX自带的工具,

需要root权限执行,可以监控进程详细内存使用信息,如:

svmon -P pid(要监控的进程PID) -i 1 (每秒刷新一次)  |grep  pid


AIX下进程内存分析
AIX下可以使用ps v工具或者svmon工具来分析进程内存。ps v命令是ps命令的一个工
具,要注意的是v之前不要加”-“。ps v工具在任何AIX操作系统下都可以使用。比
如:

# ps -lfp 13288
  F      S    UID   PID PPID C PRI NI ADDR    SZ  WCHAN STIME  TTY TIME CMD
  240001 A Oracle 13288    1 0  60 20 1ba2f 34032       Nov 03   - 0:06
ora_pmon_DEV

  # ps v 13288
    PID TTY STAT TIME PGIN SIZE   RSS   LIM  TSIZ   TRS %CPU %MEM  COMMAND
  13288   - A    0:08  225 5616 13904 32768 28420 13512  0.0  1.0
ora_pmon_DEV

 

从ps命令看到sz是34M。而用ps v命令可以看到rss是13904,TRS是13512。进程使用的
内存是RSS-TRS=392K(ps v看到的内存单位是K)。


用svmon可以看到更多的信息,其结果和ps v是一致的。比如:

#svmon -P 23288
----------------------------------------------------------------------------
---
     Pid Command     Inuse   Pin   Pgsp Virtual   64-bit    Mthrd
   23288 ora_pmon_V8    29598     1451      182     16560        N        N
  Vsid Esid Type Description           Inuse       Pin Pgsp Virtual   Addr
Range
  1781    3 work shmat/mmap            11824         0    0 11824
0..24700
  1761    1 pers code,large file /dev   9681         0    -     -
0..9680
     0    0 work kernel seg             3982      1450  182  3390
0..21804 :
 
65474..65535
 18018    d work shared library text    2852         0    0   158
0..65535
  4764    2 work process private        1127         1    0  1127
0..1182 :
 
65307..65535
  f74f    f work shared library data      81         0    0    61
0..1291
 1e59e    - pers large file /dev/lv00     33         0    -     -      0..32
  e58e    - pers large file /dev/lv00     16         0    -     -      0..82
  b74b    - pers large file /dev/lv00      1         0    -     -      0..0
  3703    - pers large file /dev/lv00      1         0    -     -      0..0


#ps v 23288
   PID    TTY STAT  TIME PGIN  SIZE   RSS   LIM  TSIZ   TRS %CPU %MEM
COMMAND
 23288      - A     0:00    0  4752 43556 32768 27289 38724  0.0  5.0
ora_pmon_V8

 

要注意的是,svmon显示的内存都是以Page为单位的,AIX下,每个页为4K。
通过work process private的virtual大小和work shared library data的virtual大小
的和ps v的SIZE是完全一致的:
4752K=(1127+61)×4K
而RSS的内容相当于Linux项目的private working-storage segments加上pers code和
shared library data。
43556K=(1127 + 9681 + 81)*4K
TRS就是INUSE项目的pers code:
38724K=9681*4K


下面这几个命令组合对于管理RS/6000 AIX系统有帮助: 
(1)显示10个消耗CPU最多的进程: 
# ps aux |head -1 ;ps aux |sort -rn +2 |head –10 
(2)显示10个消耗存储空间最多的进程: 
# ps aux |head -1 ;ps aux |sort -rn +3 |head -10 
(3)按顺序显示系统中受罚的进程: 
#ps -eakl |head -1 ;ps -eakl |sort -rn +5 
(4)按优先级顺序显示系统中的进程: 
#ps -eakl |sort -n +6 |head 
(5)按处理时间为顺序显示系统中的前十个进程: 
#ps vx |head -1 ;ps vx |grep -v PID |sort -rn +3 |head –10 
(6)按实际内存使用的多少顺序显示系统中的前十个进程: 
#ps vx |head -1 ;ps vx |grep -v PID |sort -rn +6 |head –10 
(7)按换入页面的多少顺序显示系统中的前10个进程: 
#ps vx |head -1 ;ps vx |grep -v PID |sort -rn +4 |head -10 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26655292/viewspace-2141682/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-09-11

  • 博文量
    202
  • 访问量
    380636