熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle在基於Window操作系統的性能監控

2013-11-13 16:07:47  來源: Oracle 

   任務管理器
    任務管理器能夠提供正在您的計算機上運行的程序和進程的相關信息還顯示最常用的度量進程性能的單位
使用任務管理器可以監視計算機性能的關鍵指示器可以查看正在運行的程序的狀態並終止已停止響應的程序還可以使用多達 個參數評估正在運行的進程的活動查看反映 CPU 和內存使用情況的圖形和數據
通過任務管理器的菜單—>查看—>選擇列可以自定義需要監測系統和用戶進程的活動狀況



    任務管理器的使用是非常普遍的因為它可以從宏觀上反映出服務器系統的負載情況(CPU內存I/O虛擬內存)進一步能夠判斷出機器硬件的配置和軟件的運行狀況

    但是任務管理器只能在進程這一級上進行監測檢測不到更細微的線程的運行情況對於Oracle這樣的大型數據庫系統的監控顯然不夠的

   性能監視器
    可以使用性能來自動收集本地或者遠程計算機的性能數據您可以使用系統監視器查看已記錄的計數器數據或者將數據導出到電子表格程序或用於分析和生成報表的數據庫中
系統監視器相似性能日志和警報支持定義性能對象性能計數器和性能對象實例它同時支持為有關監視硬件資源和系統服務的數據設定采樣間隔

    默認情況下進程和線程實例附加了 #n(其中n 是整數)(聯機幫助中的解釋不太明白什麼含意)缺省情況下性能監視器無法對用戶進程和進程內的線程情況進行跟蹤按照以下進行設置後即可實現線程和用戶進程的跟蹤
要添加進程標識符 ID可以在 KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance 子項下創建名為 ProcessNameFormat 的 DWORD 值並將其值設為
    同樣要添加線程 ID可以在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance 子項下創建名為 ThreadNameFormat 的 DWORD 值並將其值設為



    通常情況下需要監視的組件和關注對象更詳細的信息請看計數器中的說明
       
 

  組件磁盤
  正被監視的性能方面用法
  要監視的計數器
  物理磁盤\ Disk Reads/sec(磁盤讀取/秒)
  物理磁盤\ Disk Writes/sec(磁盤寫入/秒)
  邏輯磁盤\ % Free Space(可用空間)
  組件磁盤
  正被監視的性能方面瓶頸
  要監視的計數器物理磁盤\ AvgDisk Queue Length(磁盤隊列平均長度)(所有實例)

  組件內存
  正被監視的性能方面用法
  要監視的計數器
  內存\ Available Bytes(可用字節)
  內存\ Cache Bytes(緩存字節)
       
       組件內存
  正被監視的性能方面瓶頸或漏洞
  要監視的計數器
  內存\ Pages/sec(頁面/秒)
  內存\ Page Reads/sec(頁面讀取/秒)
  內存\ Transition Faults/sec(傳輸錯誤/秒)
  內存\ Pool Paged Bytes(分頁的內存池字節)
  內存\ Pool Nonpaged Bytes(未分頁的內存池字節)

  組件處理器
  正被監視的性能方面用法
  要監視的計數器處理器\ % Processor Time(處理器時間)(所有實例)

  組件處理器
  正被監視的性能方面瓶頸
  要監視的計數器
  系統\ Processor Queue Length(處理器隊列長度)(所有實例)
  處理器\ Interrupts/sec(中斷/秒)
  系統\ Context switches/sec(上下文切換/秒)

在性能 的性能日志和警報 選擇 計數器日志
點擊 新建日志設置

  
在常規選項卡中選擇添加計數器性能對象選擇 Thread計數器中選擇需要監控的性能指標並在實例中選擇相應的Oracle線程進行跟蹤
然後在計數器日志中選擇名稱 Oracle_Thread進行啟動


    具體的計數器解釋請看說明
     % Processor Time 是所有進程線程使用處理器執行指令所花的時間百分比指令是計算機執行的基礎單位線程是執行指令的對象進程是程序運行時創建的對象此計數包括處理某些硬件間隔和陷阱條件所執行的代碼

運行相應的程序後一段時間後停止Oracle_Thread計數器的運行
在性能監視器中選擇工具欄 查看日志活動到指定的文件夾中選擇相應的日志文件
然後可以通過 查看圖表查看直方圖查看報告的工具 閱讀和評估一段時間以來各個線程的運行狀況



   但是在系統監視器中無法顯示兩個不同測試階段的的測試對比可以在計數器日志 日志文件設置中日志的格式通常是文本文件(制表符或者逗號分割方式)然後將前後兩段時間的數據倒入Excel表利用Excel表的強大功能進行性能比較
   

   QSlice工具
    Qslice這個工具可以用來在Windows操作系統中觀察用戶進程(Oracle進程)及各線程的資源消耗主要是從CPU占用率角度來衡量的 
   

使用getsqlsql腳本即可獲得當前正在執行的SQL語句 
  來自Eygle網站上
REM getsqlsql
REM author eygle
REM 在windows上已知進程ID得到當前正在執行的語句
REM 在windows上進程ID為進制需要轉換在UNIX直接為進制
SELECT /*+ ORDERED */
sql_text
FROM v$sqltext a
WHERE (ahash_value aaddress) IN (
SELECT DECODE (sql_hash_value
prev_hash_value
sql_hash_value
)
DECODE (sql_hash_value prev_sql_addr sql_address)
FROM v$session b
WHERE bpaddr = (SELECT addr
FROM v$process c
WHERE cspid = TO_NUMBER (&pid xxxx)))
ORDER BY piece ASC
/

然後在PL/SQL中運行該腳本就可以找到最消耗資源的問題SQL接下來就可以進行針對性調整了

   pslist工具
   PsList是一個能夠列出進程和其線程占用資源詳細信息的小軟件
PsList is utility that shows you a combination of the information obtainable individually with pmon and pstat You can view process CPU and memory information or thread statistics What makes PsList more powerful than the Resource Kit tools is that you can view process and thread statistics on a remote computer 
  

  {$PageTitle關於Oracle進程和Windows線程的對照關系}
關於Oracle進程和Windows線程的對照關系
    事實上通過性能監視器或者QSlice工具PsList看到的線程即可能是Oracle中的用戶進程也可能是Oracle的後台進程這些工具給出的線程號也都是進制的數字不太有利於數據庫的監控因此我們必須把Oracle的後台進程以數據庫的語言列舉出來
    對於Oracle用戶進程則可以取出來在Oracle進行分析判斷
   


  

推薦文章
Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.