RTX64 的监控(Monitoring)功能,是通过跟踪实时程序在执行期间发生并记录的重要事件,分析应用程序的执行情况。事件会写入磁盘,并分组为会话。每个会话对应一个文件夹,其中包含一个或多个会话期间生成的事件文件。每次启动监控都将开始一个新会话,监控停止时,当前会话结束。您可以在 Tracealyzer 中查看和分析会话数据。
在 RTX64 控制面板的 Change monitor settings(更改监控设置)页面,您可以指定子系统启动时,监控功能的全局和持续性默认设置。
注意:您可以通过 RTX64 控制面板中的管理内存页面,配置子系统专用于收集监控事件的非分页内存总量。
注意:实时操作下,使用监控功能会导致多达一微秒的延迟。建议仅在开发阶段使用监控,在生产环境中禁用监控。实际延迟与监控的事件种类以及事件在实时应用中发生的频率相关。监控较少类型的事件可以减少监控对延迟的影响。
注意:RTX64 会收集额外的监控会话数据,用来支持预启动触发事件的收集。 参阅下方 Customizing Session Collection Behavior(自定义会话收集行为)。
在 RTX64 控制面板中打开此页面
在 RTX64 控制面板中打开监控设置页面:
- 在 Windows 开始菜单中,导航至 RTX64 4.x Runtime,单击 RTX64 Control Panel;
- 单击 Configure the RTSS Subsystem -> Change Monitoring settings
自动启动监控
监控功能有四种状态:Disabled(禁用),enabled(启用),started(启动),paused(暂停)。默认情况下监控是禁运的。子系统启动时,监控的状态由以下两个选项(复选框)决定:
- Enable instrumentation within the Subsystem for monitoring real-time applications:选中此复选框,则 RTX64 子系统启动时,监控功能同时启动,直到子系统停止。
注意:启用(enable)并不会启动(start)监控。Enabled 状态仅执行启动所需的设置和准备,包括分配专用于监控的非分页池内存。还会引入额外的子系统活动来支持预触发事件。
如果取消选中此复选框,当您从 RTX64 Monitor 启动监控时,系统会发出确定性短暂丧失的警告,因为监控功能要从禁用状态转变为启用状态。启用监控后,您可以使用 RTX64 Monitor 启动,停止和暂停监控,调整要监控的事件,以及将会话文件夹中的二进制文件转换为文本文件。
- Use Subsystem start as a trigger to start a session:在启用上一个选项之前,此复选框不可操作。启用上一个选项后,子系统启动时,新的监控会话随之自动启动。如果不选中此复选框,则必须使用 RTX64 Monitor,实时 API RtMonitorControl 或 RtMonitorChangeState,或通过设置事件作为启动触发器,手动启动监控会话。
配置默认收集的事件
注意:本设置仅适用于 RTX64 4.3 及更高的版本。
在 Configure events to collect by default(配置默认收集的事件)中,可以定义监控会话要收集的默认事件集。可以手动选择要收集的事件,也可以选择预定义的事件,例如 Collect memory events(收集内存事件),从而仅关注与该区域相关的事件。
配置要搜集的事件:
- 展开 Configure events to collect by default(配置默认收集的事件);
- 选择其中一项:
选项 | 描述 |
---|---|
Collect performance-related events 收集与性能相关的事件 | 从以下预定义的性能相关的事件组中,选择一组收集: – Exceptions 异常 – Fast Semaphores 快速信号量 – General Object Events 一般对象事件 – General System Events 一般系统事件 – Real-time Processes 实时进程 – Real-time Threads 实时线程 – Timers 定时器 |
Collect memory events 收集内存事件 | 从以下预定义的内存相关的事件组中,选择一组收集: – Heaps 堆 – Memory 内存 |
Collect deadlock/synchronization events 收集死锁/同步事件 | 从以下预定义的死锁和同步相关的事件组中,选择一组收集: – Critical Sections 关键部分 – Events 事件 – Fast Semaphores 快速信号量 – Mutexes 互斥体 – Real-time Threads 实时线程 – Semaphores 信号量 |
Collect custom events 收集自定义事件 | 收集所有自定义事件。自定义事件由 RtGenerateEvent API 生成。 |
Allow me to choose 允许用户选择 | – 手动选择需要收集的事件: 选择一个事件,并将其包含在监视会话中。选择事件组,表示选择了该组内的所有事件; – 取消选择某事件,会将其从会话中排除。取消选择事件组,会清除该组内的所有事件。 |
注意:要持续监控网络事件,如网络抽象层 (NAL) 和 RT-TCP/IP 栈事件,请选中 Include network events(包括网络事件)复选框。取消选中此复选框后,将不会收集网络相关事件,除非它们通过 RTX64 Monitor 作为会话动态包含在事件收集中。
注意:监控启用后,在控制面板中对事件选择的更改将不会生效,直到重新启动子系统。
有关所有监视器事件,参阅 Event Classes(事件类)。
自定义会话收集行为
在 Customize session collection behavior(自定义会话收集行为)中,可以设置要收集的最大事件数量,以及是否要收集预启动触发事件。
设置 | 描述 | 操作 |
---|---|---|
Maximum number of events to collect 要收集的最大事件数量 | 配置监控会话中要收集的最大事件数量 | 选择一个单选按钮: – Unlimited(无限制):默认。一直收集事件,直到手动停止监控会话; – Only collect this many events(仅收集这么多事件):指定监控会话收集的最大事件数量。该值必须大于 0,默认值为 20,000 个事件。 |
Number of pre-start-trigger events to collect 要收集的预启动触发事件的数量 | 配置要收集的预启动触发事件的数量(如果有)。预启动触发事件是在触发监控会话开始的之前发生的事件。 | 指定在监控会话期间要收集的预启动触发事件的数量。默认值为 0 (不收集预启动触发事件)。 注意:当 Maximum number of events to collect(要收集的最大事件数量)设置为 Only collect this many events(仅收集这么多事件)时,本设置不得超过该数量。 注意:如果设置了启动触发事件,并在上一个监控会话结束后的几毫秒内触发,则某些预启动触发事件可能会丢失。 注意:RTX64 会收集额外的监控会话数据,用来支持预启动触发事件的收集。 |
自定义会话日志
在 Customizing session logging(自定义会话日志)下,您可以配置监控会话日志保存位置,以及日志大小和允许占用的最大磁盘空间。
设置 | 描述 | 操作 |
---|---|---|
Location of Session Logs 会话日志的位置 | 会话日志的保存位置。 默认位置是 C:\ProgramData\IntervalZero\Monitor | 要修改默认值,请单击浏览并选择新位置。 注意:文件路径不能超过 200 个字符。 注意:您选择的路径不能位于映射驱动器上,也不能是 UNC 路径名。 |
Maximum session log size on disk (MB) 磁盘上的最大会话日志大小 | 单个监视会话文件夹的最大值,以兆字节为单位。 | 拖动滑块或在文本字段中输入新值。默认值为 200MB。 注意:RTX64 在以下情况下会显示警告消息: ● 日志文件夹大小可能超出可用磁盘空间时; ● 监控日志文件夹快满时; ● 输入的值超过允许的最大磁盘空间值时; 将鼠标悬停在警告图标上可以查看提示信息。 |
Maximum disk space allowed (MB) 允许的最大磁盘空间 | 所有监视会话文件夹允许的最大磁盘空间。 | 拖动滑块或在文本字段中输入新值。默认值为 可用磁盘空间的 10%。 注意:<disk space> remaining(剩余磁盘空间)标签将动态指示尚未使用的 Maximum disk space allowed(最大允许磁盘空间) 数值。如果此标签中的值超过可用磁盘空间,会出现警告。将鼠标悬停在警告图标上可以查看提示信息。 |
事件数,会话或磁盘大小达到上限时的停止行为
配置在出现以下情况时,监控会话的停止行为:
- 已达到要收集的最大事件数
- 已达到最大会话文件夹大小
- 已达到允许的最大磁盘空间
设置 | 描述 | 操作 |
---|---|---|
Automatic (stop collecting) 自动(停止采集) | 默认设置。将监控配置为出现上述情况时自动停止。 | 选中该单选按钮。 |
Manual (continue collecting and discard oldest events until stopped) 手动(继续收集并丢弃最旧的事件,直到停止) | 监控工具将继续收集事件,直到手动停止。 这种配置下,会话中最旧的事件将被丢弃,直到监视停止。 | 选中该单选按钮。 |