首页 » 系统相关 » AIX 平台分析TOP CPU使用进程ps和topas差异

AIX 平台分析TOP CPU使用进程ps和topas差异

近日一客户应用反馈数据库使用较慢,每个数据库的性能分析应该先从操作系统负载分析开始,当CPU耗尽时,其它指标可能失真变的没有意义, 当系统缓慢时不应仅从DB里找原因,数据库中几乎无负载,查看OS层发现idle接近个位数, 操作系统为AIX, 从OS层定位top process的命令通常有topas, ps, vmstat,nmon -t等,发现ps和topas显示cpu占比存在较大差异,4%和90%. 简单记录一下。

vmstat

[oracle@anbob01:/home/oracle]# vmstat 1

System configuration: lcpu=48 mem=123648MB

kthr    memory              page              faults        cpu
----- ----------- ------------------------ ------------ -----------
 r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa
39  0 18969389 132441   0   0   0   0    0   0 322 1824188 10859 93  1  6  0
40  0 18968942 132888   0   0   0   0    0   0 360 1826953 9083 93  1  6  0
38  0 18966203 135627   0   0   0   0    0   0 588 1858182 9242 93  1  6  0
39  0 18966077 135753   0   0   0   0    0   0 294 1855065 9058 93  1  6  0
38  0 18965997 135833   0   0   0   0    0   0 243 1799485 8907 92  1  7  0
 0  0 18966313 135517   0   0   0   0    0   0 225 1840313 10645 91  1  8  0
38  0 18969328 132501   0   0   0   0    0   0 617 1832792 9149 91  1  8  0
37  0 18968420 133393   0   0   0   0    0   0 1173 1807909 10358 91  1  8  0
41  0 18969701 132111   0   0   0   0    0   0 1395 1830228 11478 93  1  6  0
38  0 18969775 132037   0   0   0   0    0   0 362 1836281 8897 92  1  7  0
39  0 18967206 134605   0   0   0   0    0   0 233 1924588 10349 93  1  5  0

ps top cpu process

[oracle@anbob01:/home/oracle]# ps aux | head -1; ps aux | sort -rn +2 | head -20
USER          PID %CPU %MEM   SZ  RSS    TTY STAT    STIME  TIME COMMAND
pconsole  2621816  4.4  0.0 141772 141824      - A      Dec 08 3433492:39 /usr/java6/bin
dmhs      6160490  0.8  1.0 876904 876908      - A      Jun 10 321026:48 /opt/dmhs/bin/
grid      8127446  0.5  0.0 198672 126208      - A    12:15:35  0:14 oracleanbob01
root      1704000  0.4  0.0  448  448      - A      Dec 08 312884:19 wait
root      1638462  0.4  0.0  448  448      - A      Dec 08 313028:38 wait
root      1572924  0.4  0.0  448  448      - A      Dec 08 312446:33 wait
root      1507386  0.4  0.0  448  448      - A      Dec 08 298379:07 wait
root      1441848  0.4  0.0  448  448      - A      Dec 08 313529:54 wait
root      1376310  0.4  0.0  448  448      - A      Dec 08 313464:31 wait
root      1310772  0.4  0.0  448  448      - A      Dec 08 312732:28 wait
root      1245234  0.4  0.0  448  448      - A      Dec 08 298581:51 wait
root      1179696  0.4  0.0  448  448      - A      Dec 08 314464:43 wait
root      1114158  0.4  0.0  448  448      - A      Dec 08 314355:18 wait
root      1048620  0.4  0.0  448  448      - A      Dec 08 313696:49 wait
root       852872  0.4  0.0  448  448      - A      Dec 08 314262:25 wait
root       852592  0.4  0.0  448  448      - A      Dec 08 314365:14 wait
root       852312  0.4  0.0  448  448      - A      Dec 08 312861:41 wait
root       787334  0.4  0.0  448  448      - A      Dec 08 314042:35 wait
root       787054  0.4  0.0  448  448      - A      Dec 08 314334:36 wait
root       786774  0.4  0.0  448  448      - A      Dec 08 312957:15 wait

topas

[oracle@anbob01:/home/oracle]# topas

Topas Monitor for host:anbob01                  EVENTS/QUEUES    FILE/TTY
Fri Jan  6 12:26:31 2023   Interval:2           Cswitch   10382  Readch  1472.8K
                                                Syscall 1940.7K  Writech   79202
CPU     User% Kern% Wait% Idle%                 Reads      1222  Rawin         0
Total    94.0   1.5   0.0   4.5                 Writes      138  Ttyout      804
                                                Forks        13  Igets         0
Network    BPS  I-Pkts  O-Pkts    B-In   B-Out  Execs        17  Namei      2289
Total     383K   457.0   431.5    160K    223K  Runqueue  39.00  Dirblk        0
                                                Waitqueue   0.0
Disk    Busy%      BPS     TPS  B-Read  B-Writ                   MEMORY
Total     2.3    55.6M   355.5   55.4M    247K  PAGING           Real,MB  123648
                                                Faults    11553  % Comp     60
FileSystem          BPS    TPS  B-Read  B-Writ  Steals        0  % Noncomp  39
Total             1.20M  1.07K   1.20M   3.82K  PgspIn        0  % Client   39
                                                PgspOut       0
Name           PID  CPU%  PgSp Owner            PageIn        0  PAGING SPACE
java        2621816 86.0  138M pconsole         PageOut       0  Size,MB   16384
dmhs_ser    6160490  2.7  856M dmhs             Sios          0  % Used      1
oracle     16318758  2.0 28.5M grid                              % Free     99
oracle     13238760  2.0  132M grid             NFS (calls/sec)
reaffin      589854  0.3  640K root             SerV2         0  WPAR Activ    0
oracle      7930688  0.1 7.92M grid             CliV2         0  WPAR Total    0
osysmond    3801114  0.1  101M root             SerV3         0  Press: "h"-help
ohasd.bi    8781864  0.1 59.5M root             CliV3         0         "q"-quit
oracle      9896928  0.1 69.1M oracle           SerV4         0
oraagent    2753262  0.1 77.2M grid             CliV4         0
oraroota    7536686  0.0 99.6M root
oraagent    9764938  0.0 33.0M oracle
oracle      8978626  0.0 8.90M grid
oracle      3080448  0.0 18.3M grid
oracle      9306158  0.0 23.8M oracle
crsd.bin    3932202  0.0  455M root
topas      12779894  0.0 6.79M oracle
oracle     15597646  0.0 12.4M grid
oracle     16450166  0.0 8.84M grid
octssd.b    3277270  0.0 22.2M root

pconsole从ps看进程cpu使用仅为4.4%, 而topas显示为86%+, 哪个更正确呢?stackexchange有一个相同的提问 ,是计算方式的差异。

TOPAS % CPU 进程在监视间隔内的平均处理器使用情况。首次显示进程时,此值是进程生存期内的平均处理器使用情况。 PS %CPU(U和V标志)自进程启动以来进程使用 CPU 的时间百分比。此值的计算方法是将进程使用 CPU 的时间除以进程的已用时间。在多处理器环境中,该值进一步除以可用 CPU 的数量,因为同一进程中的多个线程可以同时在不同的 CPU 上运行。(由于计算此数据的时基不同,因此所有 %CPU 字段的总和可能超过 100%。),这么看topas 显示的是当前最近时间内CPU使用更为接近 确认是pconsole占用。

pconsole是AIX系统安装了sysmgt.pconsole.rte包后一个服务java进程, pconsole提供了一个Web的系统管理界面, IBM官方在线文档有记录如何停止pconsole.

关闭的方法很简单:

Stop the services.
AIX 5.3:
# stopsrc -s http4websm

AIX 6.1
# stopsrc -s http4websm # stopsrc -s pconsole

AIX 7.1
# stopsrc -s pconsole

验证服务是否正常运行。

# lssrc -a | egrep "pconsole|webserverstart"


禁用随OS自动启动

从 /etc/inittab 中删除或注释掉命令的每个条目,以防止服务在重新启动后重新启动。

# vi /etc/inittab
在标识符前插入冒号 (“:”) 字符以禁用启动
例如:AIX 7.1:
:webserverstart:2:once:startsrc -s http4websm >/dev/null 2>&1
:pconsole:2:once:/usr/bin/startsrc -s pconsole > /dev/null 2>&1

— over —

打赏

对不起,这篇文章暂时关闭评论。