第三十三章 使用 ^PERFMON 监控系统性能
^PERFMON
是一个控制 MONITOR
工具的 ObjectScript
实用程序。
MONITOR
工具通过收集系统级别的事件计数并按流程、例程、全局和网络节点对指标进行排序,为 数据平台系统提供性能数据。由于收集此数据涉及一些开销,因此必须专门启用计数器收集并收集特定数量的进程、全局变量、例程和网络节点的数据。 在 MONITOR
启动时分配内存,为指定数量的进程、例程、全局变量和节点创建槽。触发事件计数器的第一个进程分配第一个槽并继续添加到该组计数器。一旦设施将所有可用槽分配给进程,它就会在其他槽中包括任何后续进程计数。对于全局变量、例程和节点,它遵循相同的过程。
可以在收集过程中查看数据报告。当停止收集时,内存将被取消分配并且计数器槽将消失。因此,任何对数字的保留都需要通过将报告写入文件(或全局文件)来处理。
默认情况下,数据以每秒速率给出,但也可以选择收集原始总数。还有一些功能允许暂停/恢复收集,并将计数器归零。
通过运行 ^PERFMON
可用的菜单项直接对应于 ^PERFMON
例程中可用的功能,收集的输入用于直接提供这些功能的参数。
通过 %Monitor.System
包中的类可以使用控制相同 MONITOR
设施的类似函数。
使用 ^PERFMON
可以通过两种方式运行 ^PERFMON
例程:在 终端中以交互方式运行,或通过单独调用其功能。使用任一方法都可以使用 ^PERFMON
的所有选项。
^PERFMON
包含以下功能:
Start
Stop
Pause
Resume
Sample Counters
Clear
Report
Collect
每个函数返回成功 (1) 或失败状态(负数,后跟逗号和简短消息)。
因为 ^PERFMON
和逐行监视例程 ^%SYS.MONLBL
共享相同的内存分配,所以一次只能在 IRIS
实例上运行其中一个。如果尝试运行 ^PERFMON
并且 ^%SYS.MONLBL
已开始监视,会看到以下消息:
The Line-by-line Monitor is already enabled. This must be stopped before ^PERFMON can be used.
运行 ^PERFMON
以下是从终端以交互方式运行 ^PERFMON
例程的示例:
- 从
%SYS
命名空间输入以下命令:
do ^PERFMON
- 出现以下菜单。输入选择的数字,或按
Enter
键退出例程。
1. Start Monitor 2. Stop Monitor 3. Pause Monitor 4. Resume Monitor 5. Sample Counters 6. Clear Counters 7. Report Statistics 8. Timed Collect and Report Monitor is Stopped Enter the number of your choice:
- 每个选项直接对应一个
^PERFMON
函数,并会提示输入必要的参数。例如,输入1
对应Start
函数:
1. Start Monitor 2. Stop Monitor 3. Pause Monitor 4. Resume Monitor 5. Sample Counters 6. Clear Counters 7. Report Statistics 8. Timed Collect & Report Monitor is Stopped Enter the number of your choice: 1 Processes <24>: Routine <200>: Globals <100>: Databases <10>: Network nodes <5>: