OS性能监控及优化——osw工具详解
生活随笔
收集整理的這篇文章主要介紹了
OS性能监控及优化——osw工具详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當我們向SR提出服務請求及,常常要求提供AWR、ASH、RDA、OSW,OSW是什么?怎么用?通過學習官網相關文檔記錄如下:
一、OSW是什么?
? ? OSWatcher Black Box, 簡稱OSW,是oracle提供的一個小但是非常有用的工具,它通過調用OS自己提供的命令來記錄OS運行時的一些性能參數,比如CPU/Memory/Swap/Network IO/Disk IO相關的信息。
二、為什么要部署OSW ?
? ? OSW并不是強制要部署的,并且有很多工具可以提供一樣的功能,比如說mrtg, cacti, sar, nmon, enterprise manger grid control,既然有這么多工具可以做,我為什么還要部署OSW呢,因為OSW有N多好處:
? ? 1. 它比較容易部署,并且容易刪除。
? ? 2. 資源消耗比較小,不管是從CPU,內存還是磁盤空間來說(基本上可以忽略)。
? ? 3. 平時不需要維護,并且在發生問題時可以幫我們迅速定位問題是否發生在OS端
? ? 數據庫是運行在OS之上的,如果OS發生了異常,那么數據庫肯定也會受到影響;如果我們僅僅從數據庫的角度去分析這樣的問題時,很難有個好結果,N多時候都說是BUG或者說業務量大等一些結果來忽悠我們的用戶或領導,但是實際情況很可能是OS出了問題導致數據庫出現異常,如果直接說OS出了問題,那么主機管理員肯定不干,讓你給出證據,OSW就是我們的證據,有朋友可能會問,主機是主機的人管的,我沒權限能安裝OSW嗎?答案是肯定的,不需要ROOT權限!
三、部署OSW有那些實際用處?
? ? 在平時的工作中,有一類問題很常見:在過去的某個時間段,數據庫發生了一些問題,我們往往要找到問題的原因(root cause),之后才能做某些改動來避免它再次發生。對于這樣的問題,OSW是非常有用的,舉幾個小例子:
? ? 1.發生的問題并不是由于OS的異常引起的。這時候如果我們有在發生問題的時候收集的OSW數據,我們就可以立刻排除OS方面,把注意力投向DB/應用層。
? ? 2.對于ORACLE Database Performance的問題,我們往往第一個方向就是排除OS的問題。比如OS在某個時間段發生了很頻繁的Swapping,那么內存相關的操作就會受到影響,數據庫性能也會下降,表現在AWR中就會發現數據庫有latch/mutex相關的等待。
? ? 3.應用在某個時間段響應非常慢。AWR顯示數據庫非常的空閑,top5等待事件也都是很正常;從CPU,內存,Swap, Disk IO方面看也都很正常。后來發現OSW中關于網絡的數據顯示,發生問題時有非常多的丟包現象。如果當時沒有收集到OSW的數據,那么基本上是不可能找到原因了。
? ? 4.又比如某些ORA-04030的錯誤或者CJQ0, P00X, J00X進程不能啟動的問題,如果我們部署了OSW,那么我們就能立刻知道這些錯誤是不是由于OS的內存短缺引起的。
? ? 5.如果某個server process莫名hung住,我們可以通過OSW的信息來看當時這個進程是不是出于suspend的狀態,是不是占用了太多的CPU/Memory。
? ? 6.某些Listener hung的問題,我們也需要OSW的歷史信息來進行下一步的分析。
? ? 7. Login Storm問題:客戶的數據庫系統突然變慢,從應用端,數據庫的ASH,AWR報告中沒有發現任何異常。但是通過OSW的ps的輸出發現,在發生問題時, oracle 的server process比平時多了上千個。
? ? 實際上,OSW對于我們分析問題是非常有幫助的。如果當前OS上并沒有部署任何的監控軟件,那么強烈建議DBA來部署OSW。很多重要的生產環境都部署了OSW,在有關于DB Performance的問題時,他們往往會先提交OSW的輸出。
四、大家對部署OSW的顧慮往往是什么?
? ? 1.生產環境已經正常運行了很久了,基于穩妥的考慮,不能隨便安裝軟件
? ? 2.OSW會不會帶來副作用
? ? OSW的工作機制是每隔一段時間調用OS提供的一些工具,比如ps, vmstat, netstat, mpstat, top;然后把這些工具的輸出打印到文件里。 它不可避免的會消耗CPU, Disk IO, Disk Space, Memory;但是這些消耗的資源都是非常少的,在大部分的系統里都是可以忽略的。只有在某些極端情況下,部署OSW才會帶來負面影響:系統已經是非常的忙,CPU使用率在90%以上;磁盤的free space已經沒有了。所以大家的顧慮在大部分的情況下都是不必要的,部署OSW是沒有什么風險的。
五、支持的平臺有哪些
? ?AIX
? ?Tru64
? ?Solaris
? ?HP-UX
? ?Linux
六、下面講一下如何在UNIX/LINUX上安裝/部署OSW:
安裝包軟件可以從文檔301137.1上下載OSW,具體安裝步驟如下:
1.tar xvf osw301.tar
[[root@hdsmsdb tuningtools]# tar xvf osw301.tar
./
./osw/
./osw/Exampleprivate.net
./osw/OSWatcher.sh
./osw/OSWatcherFM.sh
./osw/OSWgREADME.txt
./osw/README.txt
./osw/iosub.sh
./osw/mpsub.sh
./osw/oswg.jar
./osw/oswib.sh
./osw/oswlnxio.sh
./osw/oswlnxtop.sh
./osw/oswnet.sh
./osw/oswrds.sh
./osw/oswsub.sh
./osw/pssub.sh
./osw/startOSW.sh
./osw/stopOSW.sh
./osw/tarupfiles.sh
./osw/topaix.sh
./osw/topsub.sh
./osw/vmsub.sh
./osw/tmp/
./osw/src/
./osw/src/coe_logo.gif
./osw/src/missing_graphic.gif
./osw/src/oswg_input.txt
./osw/src/OSW_profile.htm
./osw/src/Thumbs.db
./osw/src/tombody.gif
./osw/src/watch.gif
[root@hdsmsdb tuningtools]#
? ?此時會在當前目錄下創建一個osw文件夾,到此安裝就完成了,相當簡單,如果要刪除,直接rm -f osw即可完成刪除
2.啟動OSW監控
??
? ?此時會生成一個nohup.out文件,記錄啟動信息,同時會在當前目錄下創建一個archive文件夾,所有的監控信息都存在archive文件夾內,要確保有足夠的磁盤空間,上面這條命令的意思是在后運行,60秒收集一次,收集時長是24小時
需要注意的是:如果直接./OSWatcher.sh運行,系統默認是30稍收集一次,持續收集時間是48小時
3.停目OSW
? ?./stopOSWbb.sh
到此安裝配置簡單使用都結束了,下面我們去看看archive文件夾下面都有那些文件
[root@hdsmsdb archive]# ll
total 36
drwxr-xr-x 2 root root 4096 Sep 12 15:41 oswiostat
drwxr-xr-x 2 root root 4096 Sep 12 15:41 oswmeminfo
drwxr-xr-x 2 root root 4096 Sep 12 15:41 oswmpstat
drwxr-xr-x 2 root root 4096 Sep 12 15:41 oswnetstat
drwxr-xr-x 2 root root 4096 Sep 12 09:19 oswprvtnet
drwxr-xr-x 2 root root 4096 Sep 12 15:41 oswps
drwxr-xr-x 2 root root 4096 Sep 12 15:41 oswslabinfo
drwxr-xr-x 2 root root 4096 Sep 12 15:41 oswtop
drwxr-xr-x 2 root root 4096 Sep 12 15:41 oswvmstat
[root@hdsmsdb archive]# pwd
/home/oracle/tuningtools/osw/archive
,可以看到生成了9個文件夾,都是iostat/top/wmstat等命令命令。
我們接下分析OSW的具體使用方法,上一講我們講到OSW第一次運行時會在當前目錄下archive文件夾,同時會生成9個命令標記文件。
? ? ?各個文件下的單個文件是以小時為單位的,每小時生成一個文件,文件命名格式為:__YY.MM.DD.HH24.dat下面我們分別介紹這oswiostat, oswmpstat, oswnetstat, oswprvtnet, oswps, oswtop, and oswvmstat這幾種文件的具體內容,重點關注什么,以及怎么生成趨勢圖。首先我們來看一下iostat,我的機下生成的文件名是:hdsmsdb_iostat_13.09.12.0900.dat ?
?
各字段含義:
這部分我們重點關注:
Average service times greater than 20msec for long duration.
High average wait times
oswmpstat
_mpstat_YY.MM.DD:HH24.dat
mystat統計的是邏輯CPU的信息,字段信息說明:
上圖是我自己機上的數據,字段說明來自官網,好多字段在我的虛擬機上并不存在,這部分我們重點關注的是:
? Involuntary context switches (this is probably the more relevant statistic when examining performance issues.)
? Number of times a CPU failed to obtain a mutex. Values consistently greater than 200 per CPU causes system time to increase.
? xcal is very important, show processor migration
oswnetstat
_netstat_YY.MM.DD:HH24.dat
Linux OSW v3.0.1
zzzThu Sep 12 09:19:10 CST 2013Kernel Interface table
Iface ? ? ? MTU Met ? ?RX-OK RX-ERR RX-DRP RX-OVR ? ?TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 ? ? ? 1500 ? 0 1320905863 ? ? ?0 ? ? ?0 ? ? ?0 1302969229 ? ? ?0 ? ? ?0 ? ? ?0 BMRU
lo ? ? ? ?16436 ? 0 ?1606699 ? ? ?0 ? ? ?0 ? ? ?0 ?1606699 ? ? ?0 ? ? ?0 ? ? ?0 LRU
sit0 ? ? ? 1480 ? 0 ? ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0 O
Ip:
? ? 1289672896 total packets received
? ? 89965 with invalid addresses
? ? 0 forwarded
? ? 0 incoming packets discarded
? ? 1289582930 incoming packets delivered
? ? 1252462513 requests sent out
Icmp:
? ? 691 ICMP messages received
? ? 161 input ICMP message failed.
? ? ICMP input histogram:
? ? ? ? destination unreachable: 659
? ? ? ? echo requests: 32
? ? 1463 ICMP messages sent
? ? 0 ICMP messages failed
? ? ICMP output histogram:
? ? ? ? destination unreachable: 1431
? ? ? ? echo replies: 32
IcmpMsg:
? ? ? ? InType3: 659
? ? ? ? InType8: 32
? ? ? ? OutType0: 32
? ? ? ? OutType3: 1431
Tcp:
? ? 537693 active connections openings
? ? 122630 passive connection openings
? ? 479586 failed connection attempts
? ? 966 connection resets received
? ? 66 connections established
? ? 1287912151 segments received
? ? 1251962550 segments send out
? ? 452705 segments retransmited
? ? 0 bad segments received.
? ? 481589 resets sent
Udp:
? ? 56080 packets received
? ? 1108 packets to unknown port received.
? ? 0 packet receive errors
? ? 45471 packets sent
字段說明:
?
還有幾個就不再列出了,安裝后可以在自己機器上看這些指標,前面第一講我們介紹了如何安裝,那么我們對生成的記錄文件怎么生成圖形呢?此時我們需要運用OSWbba進行分析生成我們想要的趨勢圖,這一節怎么樣用OSWbba生成我們想要的趨勢圖.
? ? OSWbba用來分析我們前生收集的數據,它包含在OSWbb這個包中,不需要單獨安裝,OSWbba是java寫的,所以運行OSWbba至少需要java1.4.2版本,以我的機器為列:
?[root@hdsmsdb oswnetstat]# java -version
java version "1.6.0"
OpenJDK ?Runtime Environment (build 1.6.0-b09)
OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode) ??
?因此我不需要再單獨安裝了,oswg可以運行在任何平臺上,OSWg它通過vmstat、iostat等命令收集數據放在archive目錄里,OSWg分析這些數據。數據分析之后,我們可以選擇要生成的圖形,此時會在LINUX下彈出一個我們想要的圖形,可以是gif或者是html報告。也就是說OSWg是對OSWg收集的數據進行一下圖形的展現。
? ? 因為要使用ORACLE的java,所以需要修改一下環境變量,在PATH里添加java的路徑,如:
? ? export PATH=$ORACLE_HOME/jdk/bin:$PATH ?注意需要跟據自己電腦實際的情況進行設置,官網上的設置是
? ? export PATH=$ORACLE_HOME/jre/1.4.2/bin:$PATH ?
? ? 運行OSWbba需要用-i參數指定archive目錄,這里的目錄是archive的絕對路徑,需要注意的是,這里生成的圖形是直接彈出來的,需要用X Windows,所以我們要在圖形窗口中執行xhost+(此時我機器用戶是oracle用戶)然后java -jar oswbba.jar -i /mnt/hgfs/database/oswbb/archive此時會生成一個報錯,處理操作如下圖
注意:export XDISPLAY=:0.0
? ? ? xshost +
? ? ? 需要在root用戶下執行,后續操作如下:(又報一個錯哦)?
??
Enter 1 to Display CPU Process Queue Graphs
Enter 2 to Display CPU Utilization Graphs
Enter 3 to Display CPU Other Graphs
Enter 4 to Display Memory Graphs
Enter 5 to Display Disk IO Graphs
Enter 6 to Generate All CPU Gif Files
Enter 7 to Generate All Memory Gif Files
Enter 8 to Generate All Disk Gif Files
Enter L to Specify Alternate Location of Gif Directory
Enter T to Specify Different Time Scale
Enter D to Return to Default Time Scale
Enter R to Remove Currently Displayed Graphs
Enter P to Generate A Profile
Enter A to Analyze Data
Enter Q to Quit Program
Please Select an Option:此時選擇相應的選項,會直接彈出生成的圖形
?
?
? ? 這件文件是交互式存在于內存中,除非你點Q退出,否則是無法關掉的,也可以選擇生成圖片,選擇6.7.8會生成相應的圖片,圖片保存在osw文件夾下面的gif文件夾內!
? ? 需要注意的是OSW 解析所有的歸檔文件在內存中進行,然后生成圖表,如果有大量的文件需要解析,可以指定java heap 大小。
java -jar -Xmx512M oswg.jar -i /home/oracle/tuningtools/osw/archive/
? ? 忘記說了一點,執行這條分析命令時要在OSWbba所在目錄,否則會提示找不到OSWbba這個文件
? ? 至此工具的使用說明基本結束了,如果后面有實戰安全分析再和大家分享!
總結
以上是生活随笔為你收集整理的OS性能监控及优化——osw工具详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML 动态夜空特效
- 下一篇: IPTV系统中EPG模块的设计与实现