诊断监控

诊断监控ArcGIS Pro 内的集成诊断设施点。 在 ArcGIS Pro 运行期间,状态信息、日志和事件将显示在诊断监控中且不断更新。诊断监控包含一组选项卡和状态指示器。诊断监控当前包括计数器任务日志选项卡。

诊断监控对话框中的信息可用于帮助诊断各种应用程序问题,包括未响应条件、资源过度消耗、功能故障和性能下降。

诊断监控概述

注:

诊断监控在所有基于 ArcGIS Pro 的产品中可用,且不应与 ArcGIS Monitor 相混淆。

启动诊断监控

可通过以下任一方式启动诊断监控

  • ArcGIS Pro 打开的情况下按 Ctrl+Alt+M
  • 从命令行使用开关 /enablediagnostics 启动 ArcGIS Pro

如果使用命令行选项,也可以包括 /loglevel=debug 参数以在诊断监控中启用调试模式。 调试模式在后续 ArcGIS Pro 会话中持续,直到您从日志选项卡中将其禁用。

注:

从命令行启用诊断监控时,对话框最初最小化在 Microsoft Windows 任务栏上。

要使用诊断监控对特定工作流程进行疑难解答,可在处理问题区域之前打开监控。 要配置诊断监控对话框,使其在 ArcGIS Pro 中显示在所有其他窗口之前,右键单击对话框的说明文字区域,然后单击总在最前面。 这对于使用不同应用程序要素且想要在诊断监控中密切监控活动的情况会很有用。

ArcGIS Pro 架构概述

ArcGIS Pro 是一款 64 位的多线程模块化应用程序。 将按需加载功能子系统并在工作计算机线程或单独的工作进程中执行工作,如计算缓冲或渲染地图。 在大多数情况下,工作(操作)的逻辑区块将在执行期间被组织到一个或多个任务中。 任务对于事物在 ArcGIS Pro 中完成的方式而言非常重要,而且它们在诊断监控中占有突出地位。

专用线程负责渲染应用程序的用户界面元素并且适用于处理以键盘输入和鼠标单击方式的用户输入。 当操作在其中一个工作线程中执行时,图形用户界面 (GUI) 线程会提供与操作进展以及操作取消方式(如果适用)相关的反馈。 诊断监控本身在与 GUI 无关的特殊线程上运行。 这会让诊断监控对话框即使在 GUI 线程挂起时仍保持响应。

ArcGIS Pro 中的工作线程将被分为专用于特定功能区域的系列。

  • 前台线程 - 用于管理制图信息模型(CIM) 的一组四工作线程,当前已加载的工程中配置状态的主要资料档案库。 这些线程还有助于加速地图渲染。 操作在前台线程中运行期间,某些类型的用户交互会处于禁用状态。
  • 后台线程 - 这些线程可执行不依赖于 CIM 状态的各种操作,且可在用户执行其他操作时单独在后台运行。 分配至高优先级后台线程的任务运行速度更快,且优先级高于分配至低优先级后台线程的任务。 共享后台线程适用于一些特殊情况,其中各组任务必须随时间变化在相同一致线程上运行。
  • 地理处理线程 - 此线程用于执行后台地理处理操作。 在内部,地理处理线程将经常与完成此操作的其他线程进行协调。
在诊断监控中使用的线程的概述

状态区域

状态区域包含状态指示器和线程活动指示器。 状态指示器将根据当前应用程序状态显示不同颜色。 它们会缩小应用程序内发生问题的范围。 线程活动指示器根据相应线程的状态显示颜色。

状态指示器

诊断监控中的状态指示器

元素描述
1

红色表示 GUI 线程不再发送消息且无法对鼠标或键盘输入做出响应;当 GUI 线程不响应时,UI 图形渲染可能不正确。 无响应具体值将记录在无响应日志中。

2

黄色表示任务运行期间活动任务没有关联的进度条,因此呈现给用户的反馈不足。 当检测到此条件时,系统也会将任务记录中的关联任务标记为黄色。

3

黄色表示任务的发放率已超过每秒 10 次。

4

应用程序内有一或多个 HTTP 请求当前处于活动状态时显示为绿色。

5

任务当前在前台线程中执行时显示为绿色。 在任何前台任务执行期间,各个按钮和工具可能无法使用。

6

视图(通常包含地图、globe、场景或布局)当前正忙时显示为黄色。 视图忙碌期间,各个按钮和工具可能无法使用。

7

窗格当前忙碌时显示为黄色。 窗格忙碌期间,各个按钮和工具可能无法使用。

8

任务因当前运行在其中一个前台线程上的工程图相关操作停滞时,则显示黄色 应用程序等待期间,各个按钮和工具可能无法使用。

9

恢复先前挂起的工程图操作时,任务会停滞。 应用程序恢复期间,各个按钮和工具可能无法使用。

10

绿色表示地理处理操作当前正在执行。 此指示器将会亮起,而不管其为后台还是前台地理处理操作。

线程活动指示器

上述每个线程都在诊断监控的状态区域内有一个相应的活动指示器。 关联的线程当前正在运行时,则线程状态指示器显示为绿色,而线程为非活动状态(休眠)时,线程状态指示器显示为灰色。 主机 CPU 没有足够的内核支持其他线程时,线程状态指示器可能显示为深灰色。

诊断监控选项卡

诊断监控计数器任务日志选项卡组成。 计数器选项卡列出内部计数器。 任务选项卡显示最近的任务。 日志选项卡显示事件日志查看器。

计数器选项卡

计数器选项卡包含由指定内部计数器组成的列表。 每个计数器都会链接到列表上方的图形。 选择列表中的特定计数器时,图形将会更新以显示该计数器过去 20 秒的历史值。

诊断监控中的计数器选项卡

在计数器列表中,此类选项卡是有用的度量,如内存消耗、线程计数、HTTP 请求计数以及加载的 DLL 计数。 仅少数计数器需要附加说明:

  • 当前任务率 -任务当前在前台线程中排队的速率。 此处计数较高时,表示目前发布来执行操作的任务不必如此高。 任务数量较高的操作,效率可能会降低。
  • CIM 计数器 - 这些计数器用于记录 CIM 上读写操作的总计数。 与工程图相关的读写将单独计数。 由于每个操作都有相关的架空,因此,在特定时间跨度内首选较小平移,而非较大平移。
  • 请求计数器 - 此类计数器仅供内部使用。

任务选项卡

任务选项卡包含最近从用户交互所发布的任务的日志,以及在 GUI 线程中发生的任何无响应条件的其他日志。

诊断监控中的任务

最近 UI 任务日志

最近 UI 任务日志将提拱为响应用户交互而发布的最新任务的记录。 由于与标识任务功能关联的架空,此日志在诊断监控对话框关闭时将始终无法使用。 默认情况下,任务按时间顺序排序,其中最近执行的任务显示在列表的最顶部。 内部任务(从正在执行的外部任务中排队)不会显示在此列表中。 正在排队或当前正在执行的任务显示为绿色。 每个任务有一组关联的属性:

  • 任务编号 - 用于指示任务执行序列的数字,例如,任务编号 42 表示正在运行的进程中的第 42 个任务。
  • 排队时间 - 任务第一次排队时的执行时间。 在另一个任务仍在执行时启动的任务将会排队,且在当前任务完成之前不会开始执行。 在前台任务运行期间,按钮和控件通常处于禁用状态,以防止应用程序状态过渡期间有其他任务排队。
  • 任务时间 - 与任务的实际执行相关的时间间隔(以毫秒计)。
  • 恢复时间 - 等待工程图恢复完成所花费的时间(以毫秒计)。
  • 等待时间- 等待工程图相关操作完成所花费的时间(以毫秒计)。
  • 总时间 - 执行任务所需的总时间(以毫秒计),是指从任务排队的时间点开始到任务完成时间为止(包括与工程图恢复相关的任何时间)。
  • 函数 - 与任务最相关的最外层函数的名称。

任务正在排队或仍在运行时,其时间值显示为 -1。 任务完成或已取消时,将会显示实际时间(以毫秒计)。

启发式算法用于显示与正在排队的任务最相关的函数。 启发式算法使用调用堆栈查找包含非 OS 函数的框架。

最近 UI 任务日志可通过任何列按升序或降序进行排序。 例如,此功能可用于快速识别执行时间最长的任务。 日志内容可通过右键单击列表的任何位置,然后分别单击复制清除来复制到剪贴板或清除。

无响应日志

GUI 线程无论何时变为无响应,系统都会记录无响应条件事件,其中包含开始时间和总持续时间。 日志内容可通过单击列表的任何位置,然后单击复制来复制到剪贴板。

日志选项卡

日志选项卡是具有排序和过滤功能的实时事件日志查看器。 在诊断模式下运行时,ArcGIS Pro 内的大量子系统会将诊断信息写入到事件日志中。 诊断模式可以通过命令行参数启用,然而,也可以在诊断监控显示时自动启用。

诊断监控日志选项卡

有四种事件类型:

  • 错误 - 用于指示操作执行期间的重大故障
  • 警告 - 不太重要,有时可以忽略
  • 信息 - 发布此事件旨在提供有关运行操作的其他上下文信息
  • 调试 - 详细执行信息,主要供 Esri 员工使用

事件类型可在列表中通过列表顶部的相应复选框进行过滤。 根据其重要性,错误事件总是包含在列表中且无法通过过滤排除出去。 为提高选择性,可使用过滤条目。 在此处输入文本时,只有其中至少有一列包含该文本(区分大小写)的事件会显示。

匹配事件的总数显示在日志选项卡的右上角。

日志文件

日志文件在用户的 Documents 文件夹下的 ArcGIS\Diagnostics 子文件夹中生成。 对于 ArcGIS Pro,日志文件如下所示:ArcGISProLog-16360~89343E4F-74E8-4F26-A705-B805E8C92BB0,且具有以下属性:

  • ArcGISProLog 是主机可执行文件的名称。
  • 16360 是进程 ID。
  • 89343E4F-74E8-4F26-A705-B805E8C92BB0 是为该实例创建的唯一 ID。