第五十八章 使用 ^BLKCOL 監視塊衝突 第五十八章 使用 ^BLKCOL 監視塊衝突 Using ^BLKCOL ^BLKCOL Ouputend 輸出到文件

第五十八章 使用 ^BLKCOL 監視塊衝突

當一個進程被迫等待訪問一個塊時,就會發生塊衝突。過多的塊衝突會降低應用程序性能。

Using ^BLKCOL

IRIS® 數據平臺中,^BLKCOL 實用程序對指定時間段(默認爲 10 秒)內的塊碰撞進行採樣,記錄這段時間內指定時間間隔(默認爲 10 毫秒)內的最新塊碰撞。對於每個記錄的衝突,^BLKCOL 不僅標識塊,還標識涉及的全局及其在塊中的第一個和最後一個引用,以及創建試圖訪問塊的進程的例程和行。

注意:irisstat -D 選項,如本指南附錄“使用 irisstat 實用程序監視 IRIS”中的使用選項運行 irisstat 中所述,也對塊衝突進行採樣,但僅識別涉及的塊。

irisstat -D 的輸出包含在 ^SystemPerformance 實用程序生成的報告中,如本指南的使用 ^SystemPerformance 監控性能一章所述。

運行 ^BLKCOL 時,可以指定以下內容:

  • 採樣週期的長度(以秒爲單位)
  • 採樣之間的間隔(以毫秒爲單位)
  • 是否收集例程詳細信息(默認爲是)
  • 是否將輸出格式化爲:
    • 具有最高衝突計數的塊列表(默認)
    • 涉及的所有塊的列表in collisions
    • 來自檢測到的所有塊碰撞的逗號分隔值,按塊編號和例程排序和計數
    • 來自所有檢測到的塊碰撞的逗號分隔值,未排序(RAW
    • 例程中的碰撞熱點列表
  • 要顯示的塊數(如果適用)
  • 是否將輸出發送到文件

^BLKCOL Ouputend 輸出到文件

^BLKCOL 實用程序的使用顯示在以下示例終端會話中:

%SYS>do ^BLKCOL

Block Collision Analysis

How many seconds should we sample: <10>
How long to wait (ms) between each sample: <10>
Collect routine details? <Y>
Format for 'T'op counts, 'D'isplay all, 'S'orted CSV, 'H'ot spot, or 'R'aw CSV: <T>
Number of blocks to display: <10>
Output to file: <0>

Sampling ... (any key to interrupt)


625 block collisions in 735 samples.

Block # (count) - Global refs (first - last in block) - Routine refs (SFN)

767       (395) in c:\InterSystems\iris\mgr\user\
  ^acctest - ^acctest(10220," 167") (T/BPtr)
    325 at ^AccessTest+156(4)
    25 at ^AccessTest+121(4)
    24 at ^AccessTest+92(4)
    8 at ^AccessTest+109(4)
    8 at ^AccessTest+127(4)
    4 at ^AccessTest+170(4)
    1 at ^AccessTest+163(4)

3890      (11)  in c:\InterSystems\iris\mgr\user\
  ^acctest(2552,"  371") - ^acctest(2552,"  38") (Data)
    6 at ^AccessTest+164(4)
    3 at ^AccessTest+163(4)
    1 at ^AccessTest+134(4)
    1 at ^AccessTest+156(4)

15572     (9)   in c:\InterSystems\iris\mgr\user\
  ^acctest(6980," 4795") - ^acctest(6988," 3259") (Data)
    7 at ^AccessTest+134(4)
    1 at ^AccessTest+164(4)
    1 at ^AccessTest+170(4)

15818     (8)   in c:\InterSystems\iris\mgr\user\
  ^acctest(9124," 173") - ^acctest(9124," 1743") (Data)
    5 at ^AccessTest+164(4)
    3 at ^AccessTest+170(4)

971       (7)   in c:\InterSystems\iris\mgr\user\
  ^acctest(484," 3927") - ^acctest(484," 3938") (Data)
    5 at ^AccessTest+170(4)
    2 at ^AccessTest+164(4)

1137      (7)   in c:\InterSystems\iris\mgr\user\
  ^acctest(756," 4063") - ^acctest(756," 4073") (Data)
    3 at ^AccessTest+109(4)
    2 at ^AccessTest+134(4)
    1 at ^AccessTest+156(4)
    1 at ^AccessTest+163(4)

2999      (7)   in c:\InterSystems\iris\mgr\user\
  ^acctest(2092,"  666") - ^acctest(2092,"  674") (Data)
    3 at ^AccessTest+170(4)
    1 at ^AccessTest+109(4)
    1 at ^AccessTest+121(4)
    1 at ^AccessTest+134(4)
    1 at ^AccessTest+164(4)

6173      (7)   in c:\InterSystems\iris\mgr\user\
  ^acctest(3684,"  528") - ^acctest(3684,"  536") (Data)
    3 at ^AccessTest+163(4)
    1 at ^AccessTest+109(4)
    1 at ^AccessTest+156(4)
    1 at ^AccessTest+164(4)
    1 at ^AccessTest+170(4)

14617     (7)   in c:\InterSystems\iris\mgr\user\
  ^acctest(9688,"   18") - ^acctest(9688,"   26") (Data)
    4 at ^AccessTest+170(4)
    2 at ^AccessTest+164(4)
    1 at ^AccessTest+134(4)

15282     (7)   in c:\InterSystems\iris\mgr\user\
  ^acctest(8700," 4889") - ^acctest(8760," 1402") (Data)
    4 at ^AccessTest+170(4)
    3 at ^AccessTest+164(4)
%SYS>d ^BLKCOL

Block Collision Analysis

How many seconds should we sample: <10>
How long to wait (ms) between each sample: <10>
Collect routine details? <Y>
Format for 'T'op counts, 'D'isplay all, 'S'orted CSV, 'H'ot spot, or 'R'aw CSV: <T> H
Number of blocks to display: <10>
Output to file: <0>

Sampling ... (any key to interrupt)


571 block collisions in 768 samples.

 
Sorted by routine/line that waits for block ownership
_____________________________________________________

(571) AccessTest
    (324) +156^AccessTest :  s @G@($J,node)=$$getdata($E(Str,1,$r(1000)))  ;SMLXXX+, AFH
    (54) +164^AccessTest :  k @G@($J,node)
    (43) +134^AccessTest :  .  k @G@($J,node)
    (31) +92^AccessTest :  .  .  k @G@($j)
    (28) +109^AccessTest :  .  s x=$O(@G@($J,x))

Sorted by routine that owns the block
_____________________________________

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