aix性能監控

aix的常用監視工具
常用命令 軟件包
vmstat,iostat,sar bos.acct
topas,svmon,filemon,fileplace bos.perf.tools
vmtune,schedtune bos.adt.samples
netstat bos.net.tcp.client

vmstat報告CPU與內存信息
如下例所示:
kthr memory page faults cpu
----- -------------- ------------------------- ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
2 11 1116402 0 0 19 24 583 1328 0 1514 10956 6379 17 4 45 34
0 35 1117232 0 0 15 75 1908 4207 0 2675 9350 18901 10 8 0 82
1 45 1118296 0 0 51 108 1873 3580 0 2298 8699 15324 9 8 0 83
0 22 1116890 0 0 78 19 830 1577 0 1836 8530 3891 7 6 0 87
13 29 1117030 0 0 5 26 1304 2737 0 1924 7619 9908 7 7 0 86
內核線程
r表示內核中運行的線程數,如果其數超過系統的CPU個數,則說明等待進程越多
b表示內核中等待的線程數,由於掛起或IO等待

內存列
pi列表示每秒鐘從Paging Space置換到內存的頁數。
po列表示每秒鐘從內存置換到Paging Space的頁數。
如果這兩列持續大於5,則系統的性能瓶頸很可能是內存不足,而導致交換頻繁。
fr列表示每秒鐘頁面置換算法釋放的頁數。
sr列表示每秒鐘頁面置換算法檢查的頁數。

故障列
in 設備中斷次數
sy 系統調用次數
cs 內核線程上下文交換,即時間片用完後,再輪到時的上下文計算,如果太高,則要仔細觀察

內存信息
avm與free兩項分別表示了物理內存的活動頁數與可用頁數(每頁4096bytes),其大小可用其值/256獲得MB數。
其中free數如果持續爲0或很低則預示內存不足,此時可能會導致大量的頁面交換,而在CPU中顯示爲wa很高,此值的多少也與vmtune中的-f -p設置有關

CPU信息
在以上信息中,關於CPU是的後四列:
id高表示系統空閒,us、sy分別表示用戶和系統進程CPU佔用,wa表示IO等待時間
如果us與sy之和持續超過90%時,CPU出現了瓶頸。
如果wa長期很高>50,則表示IO太忙,具體看是應用IO多,還是交換分頁多,如果是後者,則顯示內存不足,
如果是前者,則應關注應用的IO性能狀況,優化應用與磁盤設備

 


sar命令優勢
sar可以針對SMP系統來分別查看CPU使用情況
sar -P ALL 3 2
AIX testhost 1 5 0050C33A4C00 06/28/05

17:30:02 cpu %usr %sys %wio %idle
17:30:05 0 38 4 43 15
1 32 3 49 16
2 51 3 44 2
3 53 3 42 2
- 44 3 44 9
17:30:08 0 35 1 46 18
1 18 3 70 9
2 24 2 60 14
3 16 1 81 3
- 23 2 64 11

Average 0 36 2 45 16
1 25 3 59 13
2 38 3 52 8
3 34 2 62 2
- 33 3 54 10
以上顯示了一個單CPU系統的顯示,

sar也可以查看系統調用情況
sar -c 3 2
AIX test 1 5 0050C33A4C00 06/28/05

17:31:00 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s
17:31:03 5738 484 439 0.00 0.00 952729 1073997
17:31:06 3365 149 266 0.00 0.00 11620 930150

Average 4553 317 352 0.00 0.00 482957 1002193

svmon使用
svmon可以查看內存的詳細使用情況,含分頁
svmon -G  -i 5 2
               size      inuse       free        pin    virtual
memory      2097136    2096903        233     107570    1622941
pg space    1507328    1400132

               work       pers       clnt      lpage
pin          107324        246          0          0
in use      1236897     860006          0          0
               size      inuse       free        pin    virtual
memory      2097136    2096212        924     107570    1623787
pg space    1507328    1400135

               work       pers       clnt      lpage
pin          107324        246          0          0
in use      1237139     859073          0          0
其中memory行顯示了內存總量,使用量,釘入量和虛擬總量
pg space行顯示了分面空間的使用量
pin行顯示了正在用的釘入量,永久釘入量和客戶量
in use顯示了總內存的工作頁面量,永久頁面量,客戶端頁面量
如想將oracle進行lock_sga設置,可以查看PIN值來確認是否生效
要使pin生效必需vmtune -S 1

svmon -U oracle可以查看oracle用戶的用量
svmon -U oracle
===============================================================================
User                                 Inuse      Pin     Pgsp  Virtual  LPageCap
oracle                             1897660     3007  1210399  1459736         N
計算出其大小爲         7412M 11M 4728M  5702M
...............................................................................
SYSTEM segments                      Inuse      Pin     Pgsp  Virtual
                                      3236     2089     1935     4889
                                      13M      8M        8M    
...............................................................................
EXCLUSIVE segments                   Inuse      Pin     Pgsp  Virtual
                                   1893883      918  1208317  1453304
                                      7398      4M
SHARED segments                      Inuse      Pin     Pgsp  Virtual
                                       541        0      147     1543
                                       2M
在以上表中SYSTEM是所有系統共用段,EXCLUSIVE是此用戶專用段,SHARED段是共享段

svmon -C oracletest
可以統計oracletest命令的所有內存使用情況
在其中也分爲SYSTEM,EXCLUSIVE,SHARED三段,在其中將會發現SHARED段很大,那是因爲其與其它oracle進程共用的結果
在整個輸出中,其類型分爲
work 表示進程和內存共享段的區域
perm 表示文件,目錄,日誌,大文件等使用段,其代表了文件操作所用內存的值
clie 表示NFS,CDROM等文件系統使用段

svmon -P
可以查看所有進程的內存使用情況,加上PID可以查看單個進程的內存使用情況
能過此種方式,可以標識所用命令
通過上述命令獲得的命令名,再通過svmon -C來查看其專用內存段,進行對比,可以區分出不同命令所用內存多少,對oracle不同進程之間的分析有用

磁盤IO
iostat 可以查看時間段內的CPU狀況和磁盤狀況
tty:      tin         tout   avg-cpu:  % user    % sys     % idle    % iowait
          0.0         55.3              11.6      2.0       20.4      66.0    

Disks:        % tm_act     Kbps      tps    Kb_read   Kb_wrtn
hdisk0          24.9     153.0      38.3       1236       296
hdisk1          31.3     193.8      48.7       1656       284
dac0             0.0     2969.1     179.1      11564     18164
hdisk2         100.0     2969.1     179.1      11564     18164
cd0              0.0       0.0       0.0          0         0
其中% tm_act是指活動時間,kbps是在統計時間內所有Kb_read與Kb_wrtn之和除以時間的值,即每秒傳輸的字節數
如果% tm_act常過70%卻只有很低的Kbps,系統可能是有比較多的LV碎片或文件碎片,當都高時則系統正常。
tps表示每秒的IO數,不同的磁盤系統其可承受的IO數不同。

sar -d 10 2也可以查看IO情況
12:11:16     device    %busy    avque    r+w/s   blks/s   avwait   avserv

12:11:26     hdisk0     34      1.0       50      201      0.0      0.0
             hdisk1     41      0.0       64      259      0.0      0.0
               dac0      0      0.0      331     4197      0.0      0.0
             hdisk2     99      5.0      331     4197      0.0      0.0
                cd0      0      0.0        0        0      0.0      0.0
其中的%busy對應的% tm_act
avque表示等待IO對列數,其值很高則預示着磁盤有較大瓶頸
r+w/s對應tps,blks/s是按0.5Kbytes/s計算的傳輸速度
sar -d 最大好處是可以對較長時間的值會有一個總體平均值


vmtune使用
/usr/samples/kernel/vmtune 會得出當前設置數據
vmtune:  current values:
  -p       -P        -r          -R         -f       -F       -N        -W
minperm  maxperm  minpgahead maxpgahead  minfree  maxfree  pd_npages maxrandwrt
 400921  1603684       2          8        120      128      65536        0

  -M      -w      -k      -c        -b         -B           -u        -l    -d
maxpin npswarn npskill numclust numfsbufs hd_pbuf_cnt lvm_bufcnt lrubucket defps
1677709   47104   11776       1     186        224          9      131072     1

        -s              -n         -S         -L          -g           -h
sync_release_ilock  nokilluid  v_pinshm  lgpg_regions  lgpg_size  strict_maxperm
        0               0           0           0            0        0

    -t           -j              -J               -z
maxclient  j2_nPagesPer j2_maxRandomWrite  j2_nRandomCluster
1603684           32            0                  0

    -Z                  -q                    -Q                -y
j2_nBufferPer  j2_minPageReadAhead  j2_maxPageReadAhead   memory_affinity
      512              2                    8                 0

    -V                  -i
num_spec_dataseg  spec_dataseg_int
      0                512

PTA balance threshold percentage = 50.0%

number of valid memory pages = 2097136  maxperm=80.0% of real memory
maximum pinable=80.0% of real memory    minperm=20.0% of real memory
number of file memory pages = 847042    numperm=42.2% of real memory
number of compressed memory pages = 0   compressed=0.0% of real memory
number of client memory pages = 0       numclient=0.0% of real memory
# of remote pgs sched-pageout = 0       maxclient=80.0% of real memory

其中的minfree限制了當系統的分頁數少於此值時就要交換出此頁數,並在達到maxfree時停止
其中maxfree必須>minfree+maxpgahead
./vmtune -F maxfree_pages -f minfree_pages 用於進行以上設置

minperm,maxperm對文件分頁的控制
MINPERM與MAXPERM的意義
當內存中的文件緩存頁在MINPERM以下時,內存頁交換算法同時交換文件緩存頁和程序頁(computational pages)
當內存中的文件緩存頁在MAXPERM以上時,內存頁交換算法只交換文件緩存頁。
當內存中的文件緩存頁在MINPERM和MAXPERM之間時,內存頁交換算法通常只交換文件緩存頁,但如果文件緩存頁的交換率大於程序頁時,程序頁也同樣被交換。
MINPERM和MAXPERM參數的缺省值爲20%與80%
即vmtune -p 20 -P 80
可以用以下命令將MINPERM設爲5%的內存頁,而MAXPERM設爲20%的內存頁。
# vmtune -p 5 -P 20
在vmtune的輸出中,有一個numperm的值,其對我們調整很有參考意義

在Oracle數據庫應用的環境下,可以將MINPERM和MAXPERM分別設爲5%和20%甚至更小,從而使內存更多地被用於Oracle的SGA而不是系統的文件緩存。
但此時也要考慮系統的dbrw量的多少,用lock_sga方法可以更好的控制sga的是否交換(在lock_sga前,應該先vmtune -S 1 啓用pinshm以支持應用的內存pin)


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/realAsker/archive/2006/05/14/728289.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章