使用HANGANALYZE跟蹤檔案診例項hang問題

husthxd發表於2004-12-06

設定HANGANALYZE跟蹤診斷例項Hang問題.


1.         使用HANGANALYZE

Session級設定跟蹤:

ALTER SESSION SET EVENTS 'immediate trace name HANGANALYZE level ';

或者以sysdba使用者登陸,設定跟蹤:

ORADEBUG hanganalyze

其中level的含義如下:

10     Dump all processes (IGN state)
5      Level 4 + Dump all processes involved in wait chains (NLEAF state)
4      Level 3 + Dump leaf nodes (blockers) in wait chains (LEAF,LEAF_NW,IGN_DMP state)
3      Level 2 + Dump only processes thought to be in a hang (IN_HANG state)
1-2    Only HANGANALYZE output, no process dump at all

 

如果Level過大的話會產生大量的跟蹤檔案並影響系統的I/O效能,建議不要採用3級以上的跟蹤。

2.         HANGANALYZE跟蹤檔案分析

跟蹤檔案中最關鍵的部分是STATE OF NODES:

對於9i該部分的條目結構為:

[nodenum]/cnode/sid/sess_srno/session/ospid/state/start/finish/[adjlist]/predecessor

其中:

nodenum:定義每個session的序列號

sid:session的sid

sess_srno:session的Serial#

ospid:OS的程式ID

state:node的狀態

adjlist:表示blocker node

predecessor:表示waiter node

 

State有如下幾種狀態:

IN_HANG:如果Session處於這種狀態,表示Session遇到deadlock或者處於hung狀態。

LEAF/LEAF_NW:這些Session通常是“blocker”或者是等待某些資源的“slow” node,透過欄位predecessor” 可以很容易標識出這些node。

NLEAF:這些Session通常被認為是“stuck”會話,意味著這些Session在等待某些Session的資源。透過欄位“adjlist”可以很容易的定義該程式的blocker。

IGN/IGN_DMP:這些Session通常是IDLE Session。

3.  示例

    to be continued......

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6906/viewspace-21660/,如需轉載,請註明出處,否則將追究法律責任。

相關文章