第五十八章 使用 ^BLKCOL 监视块冲突

简介: 第五十八章 使用 ^BLKCOL 监视块冲突

第五十八章 使用 ^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

相关文章
|
4月前
|
应用服务中间件 开发工具 nginx
Ngnix全局块的工作进程的两个指令
Ngnix全局块的工作进程的两个指令
|
6月前
|
Perl
awk复杂用法多模式和多动作块
awk复杂用法多模式和多动作块
63 2
模拟实现库函数memcpy--复制内存块。详细理解内存重叠及精准复制问题
模拟实现库函数memcpy--复制内存块。详细理解内存重叠及精准复制问题
147 0
|
安全 Python
病毒传播模拟实验2-清零还是共存?
两年前,我曾经用python写过一个病毒传播的模拟器,用一个简化的数学模型来演示病毒的传播,并用模拟实验解释了为什么做好个人防护、减少出行和对感染者集中隔离可以有效阻断病毒的传播。
|
存储 小程序 C语言
条件分支和循环机制、标志寄存器及函数调用机制
条件分支和循环机制、标志寄存器及函数调用机制
96 0
西门子S7-1200的运动控制功能、系统使能指令块、错误确认指令块、回参考点或设置参考点指令块的参数含义
今天我们来介绍西门子S7-1200的运动控制功能。西门子S7-1200的运动控制指令是通过使用相关工艺数据块和CPU的专用脉冲串输出来控制轴的运动。
西门子S7-1200的运动控制功能、系统使能指令块、错误确认指令块、回参考点或设置参考点指令块的参数含义
|
应用服务中间件 nginx
|
数据库连接 数据库 数据安全/隐私保护
对象变量或with块变量未设置————问题根源
对象变量或with块变量未设置————问题根源
1183 0
对象变量或with块变量未设置————问题根源
|
监控
预置位定义及功能
  1、预置位功能解释:     当用户通过控制设备操作终端的监控云台监视目标时,操作人员可以把当前监视目标设置一个预置位,比如一个动点云台,可以365或360度全方位旋转监视;操作人员可以把一个窗口、柜台、办公桌、出入口、存车处等需要监视的地点设置为预置位;设置好的预置位可以通过控制设备软件操作把当前位置保存在终端监控云台的解码器上。
2146 0
|
SQL 数据库连接 数据库
实时错误“91” 对象变量或with块变量未设置”
实时错误“91” 对象变量或with块变量未设置”
817 0
实时错误“91” 对象变量或with块变量未设置”