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