【oracle性能監控】- 使用Spotlight監控oracle及瓶頸分析

1 Spotlight簡介

Spotlight是Quest公司出品的用於第三方性能監控的圖形化工具,Spotlight相關的產品衆多,如Spotight on Linux/Unix、Spotight on Windows、Spotlight on SQL Server、 Spotlight on DB2、Spotight on Oracle等,本文介紹的Spotlight就是用於oracle領域的圖形化、實時性能監控診斷工具-Spotight on Oracle,它提供了直觀、可視化的數據庫活動展現能力,一旦某個指標出現性能瓶頸,就能可視化展現出來。因此,DBA或性能測試人員可以據此簡單、快速地追查性能瓶頸的底層原因。另外,Spotlight不需要在服務器端安裝代理,只需要創建一些管理對象,方便部署和應用。

2 部署Spotlight

Spotlight的使用依賴oracle客戶端,部署安裝前需要準備如下安裝文件:

1) Oracle客戶端instant client

官網下載地址:

https://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html

 

2) Spotlight

官網下載地址:

https://support.quest.com/zh-cn/spotlight-on-oracle/10.3.3/download-new-releases


以上兩個工具按照提示步驟一步步安裝即可,詳細安裝步驟不再贅述。其中,oracle client需要配置系統環境變量PATH、TNS_ADMIN,其值爲tnsnames.ora文件所在目錄,如

PATH:D:\oracle\instantclient_11_2;

TNS_ADMIN:D:\oracle\instantclient_11_2;

3 使用Spotlight進行性能監控

使用Spotlight進行性能監控前,需要做一些簡單配置,具體使用方法如下:

3.1 配置數據庫連接信息

在oracle 客戶端工具的安裝目錄下找到tnsnames.ora文件,在文件裏配置需要監控數據庫實例的連接信息,形式如下:

1.png

3.2 配置監控用戶

在實際監控中,建議創建一個專用的監控用戶來獲取監控信息,點擊菜單項file-Oracle User Wizard,打開用戶創建嚮導,如圖所示,然後根據提示輸入DBA連接認證、創建一個新用戶、輸入用戶名和密碼(如,用戶名:spotlight,密碼:test123)、選擇表空間,一步步完成即可。

2.png

3.3 創建數據庫連接

1 點擊工具欄Connect快捷鍵,打開連接管理器嚮導,雙擊New connection圖標,輸入連接名字後,即可打開連接屬性配置窗口,如下圖所示:

3.png

2 打開連接屬性配置窗口後,可以看到窗口主要有三部分:ORACLE連接配置、ASM連接配置、服務器連接配置,其中後面兩項是可選項,如果不需要,不要勾選即可。連接信息配置完成後,點擊ok,即可看到監控主界面。

4.png

3 監控界面介紹

當上述配置完成後,執行連接,就能看到Spotlight的監控界面,如圖所示。從界面可以實時觀察數據流向,同時可以直觀看出系統的整體運行情況,如果系統哪方面出現性能瓶頸或問題,會報相應的警告,紅色警告的級別爲最嚴重。

5.png

注:綠色區域代表相關區域正常,×××區域代表該區域超出標準值出現警告,紅色區域代表該區域出現異常。


3 Spotlight重點監控及分析

3.1  Top Sessions

點擊工具欄圖標6.png,可以打開Top Sessions面板,如圖所示,通過該面板可以查看當前session的情況,如哪個session佔用了較多資源,以此定位數據庫問題。通過點擊列名可以進行排序,如點擊CPU(ms/s),會根據CPU進行升序或降序排列;選擇某個session,進行雙擊可以查看該session的詳細信息,如Session Details、Session Waits、Session SQL、Session Locks等;或者在某個session上右鍵,可以執行kill session、trace session等操作。

7.png 

在Session Infomation窗口,需要重點關注的是Session Waits、Session SQL、Session Locks,如圖所示,其作用分別爲:

Session Waits:找出與該session相關的等待事件;

Session SQL:找出該session相關的最近執行的sql語句;

Session Locks:與該session相關的鎖信息,查看是否阻塞;

8.png

3.2 Top SQL

點擊工具欄圖標9.png,可以打開Top SQL面板,如圖所示,通過該面板可以查看系統中佔用資源較大的sql語句,選擇對應的行,可以查看SQL information詳細信息。

10.png

該面板主要用於查找存在瓶頸的SQL語句,如哪些SQL耗時較長,哪些SQL磁盤讀寫多、緩存命中率低等,然後針對有問題的SQL進行優化,通過可以先從語法上優化,再從業務邏輯上優化。

3.3 Activity

點擊工具欄圖標11.png,可以打開Activity面板,如圖所示,該面板以直方圖的形式展示了IO、活動session、等待事件等信息,通過其他tab頁面可以查看具體的waits事件、Locks等信息,該界面數據一般用於輔助分析。

12.png

3.4 I/O和配置內存

點擊工具欄圖標13.png,可以分別打開I/O和配置內存面板,如圖所示,通過這兩個面板可以查看session、數據文件的IO情況、數據庫內存配置及使用情況等,一般用於輔助分析。

14.png

在I/O界面,通過關心的是哪個表空間或數據文件的物理讀寫較高,哪個session執行的SQL導致這些IO異常。從該界面可以定位到那個session的IO異常,然後結合Top Session界面的SQL進行分析、定位。當然,也可能是表結構設計導致的IO問題,此時結合Segment的IO的使用情況進行分析。

在配置內存界面,需要關注SGA利用率、shared pool、buffer cache的利用率和命中率,其中在shared pool中主要查看library 命中的情況,在buffer cache主要關注命中率,如果命中利率太低,可能存在問題。

4 其他資源

  關於python學習、分享、交流,筆者開通了微信公衆號【小蟒社區】,感興趣的朋友可以關注下,歡迎加入,建立屬於我們自己的小圈子,一起學python。

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