了解服务质量 (QoS) 行为和记录

本主题涵盖 QoS 的详细信息,包括结束事件、故障转移触发器和记录文件内容期间的服务器和服务器控制器行为。

QoS 结束事件

下面是结束事件期间服务器和服务器控制器应该发生的行为。
  • nsd -kill”不会生成 nsd。只会生成 kill_* 文件。
  • 当且仅当服务器即将重新启动时,控制器才会生成自己的“nsd -stacks”以用于故障诊断。
  • 如果在 notes.ini 中设置了 QoSShutdownNSD=seconds,并且服务器在 QoSShutdownNSD 秒内未完全关闭,那么将每隔 QoSShutdownNSD 秒生成一个“nsd -stacks”。此 notes.ini 设置用于对需要很长时间才能关闭的服务器执行故障诊断。
注: 在下表中,超时表明 qosprobe 服务器加载项无法在 QOS_PROBE_TIMEOUT 毫秒内成功打开该服务器的 names.nsf($Servers 视图)。
1. 事件和操作
事件 控制器操作 是否可配置?
探测 (qosprobe) 超时 5 分钟之后关闭并重新启动服务器。 dcontroller.ini:QOS_PROBE_TIMEOUT=minutes
长时间运行应用程序超时 10 分钟之后关闭并重新启动服务器。 dcontroller.ini:QOS_APPS_TIMEOUT=minutes
服务器耗尽共享句柄 关闭并重新启动服务器。
服务器耗尽会话表 关闭并重新启动服务器。
服务器耗尽净内存 关闭并重新启动服务器。
服务器耗尽共享内存句柄 关闭并重新启动服务器。
运行时服务器崩溃/进入紧急状态 5 分钟之后重新启动服务器。
服务器用于关闭(“退出”)的时间太长 5 分钟之后关闭服务器。 dcontroller.ini:QOS_SHUTDOWN_TIMEOUT=minutes
服务器用于重新启动(“重新启动服务器”)的时间太长 5 分钟之后关闭并重新启动服务器。 dcontroller.ini:QOS_RESTART_TIMEOUT=minutes
服务器进程已意外终止 关闭并重新启动服务器。

QoS 故障转移触发器

QoS 智能结束可以将服务器最长关闭 20 分钟。总停机时间可以包括大约五分钟的探测超时检测、运行 nsd 收集有关所有进程的数据(大约 3 分钟)、结束服务器(大约 1 到 2 分钟)和重新启动(包括入口任务时间 - 最多 10 分钟)。被委派在 QoS 被设置到的服务器上进行处理的任何新请求将在 QoS 检测到服务器应被智能结束时在几秒之内故障转移到集群伙伴。

由于仅当已知服务器已启动、正在运行且正在处理时故障转移才有意义,因此在以下智能终止场景中不会使用快速故障转移功能:
  • 关闭服务器所用时间太长
  • 重新启动服务器所用时间太长
  • 服务器已崩溃,崩溃后需要清理 QoS
注: 可以使用 notes.ini 设置 QOS_DISABLE_FAILOVER_TRIGGER=1 来禁用 StaticHang 机制。设置此参数后,仍将创建和删除 triggerImmediateServerFailover 文件,但服务器不会执行 StaticHang 来强制故障转移。

QoS 控制器日志文件

QoS 会在 Domino® 服务器的数据目录中放入一个新日志文件。QoS 控制器日志文件中包含与 QoS 控制器捕获或处理的各种事件、与 QoS 探测有关的事件、卫生服务器重新启动、服务器崩溃、QoS 智能结束和其他事件对应的详细信息。以下部分描述了此日志文件、其工作方式以及在对服务中的事件执行故障诊断时如何正确阅读此日志文件。

注: 在支持人员的协助下对服务器问题执行故障诊断时,也可能要为其提供日志文件。
日志文件命名约定

QoS 控制器日志文件名包含 24 小时制的时间戳记,格式为 YYYYMMDDHHmm,例如:
qoscntrlr201105171528.out

此时间戳记指示 QoS 控制器的启动时间。示例文件名将为 2011 年 5 月 17 日下午 3:28 执行的服务启动的 QoS 控制器日志。如果停止此服务并再次启动,将为当前 qoscntrlrYYYYMMDDHHmm.out 文件提供 .log 扩展名,并使用当前时间创建一个新的 qoscntrlrYYYYMMDDHHmm.out 文件。服务启动时如果这些 qoscntrlrYYYYMMDDHHmm.log 文件存在时间超过了 14 天,将被自动删除。

日志文件命名约定

QoS 控制器日志文件名包含 24 小时制的时间戳记,格式为 YYYYMMDDHHmm,例如:
qoscntrlr201105171528.out

此时间戳记指示 QoS 控制器的启动时间。示例文件名将为 2011 年 5 月 17 日下午 3:28 执行的服务启动的 QoS 控制器日志。如果停止此服务并再次启动,将为当前 qoscntrlrYYYYMMDDHHmm.out 文件提供 .log 扩展名,并使用当前时间创建一个新的 qoscntrlrYYYYMMDDHHmm.out 文件。服务启动时如果这些 qoscntrlrYYYYMMDDHHmm.log 文件存在时间超过了 14 天,将被自动删除。

如何阅读日志文件

在日志文件的开头,将针对记录的此次 QoS 控制器运行显示常规配置信息:
2012/08/06 06:33:34 QoS Controller: Starting QOSPipeWatcher
2012/08/06 06:33:34 QoS Controller: QOS_PROBE_TIMEOUT=5 minutes
2012/08/06 06:33:34 QOSController: QOS_SHUTDOWN_TIMEOUT=5 minutes
2012/08/06 06:33:34 QOSController: QOS_RESTART_TIMEOUT=5 minutes
2012/08/06 06:33:34 QOSController: QOS_APPS_TIMEOUT=10 minutes
2012/08/06 06:33:34 QoS Controller: nsd Program Path=/opt/hcl/notes/latest/linux/nsd.sh
2012/08/06 06:33:34 QoS Controller: QOS_RESTART_LIMIT_MAXIMUM=3
2012/08/06 06:33:34 QoS Controller: QOS_RESTART_LIMIT_PERIOD=30 minutes
2012/08/06 06:33:34 QoS Controller: QOS_NOKILL=false
2012/08/06 06:33:34 QoS Controller: QOS_MAIL_TO=test/hcl
2012/08/06 06:33:34 QoS Controller: QOS_MAIL_SMTP_SERVER=xx
可在服务器数据目录中的 Domino® 控制器 ini 文件 (dcontroller.ini) 内配置这些项,以及其他一些基本项。从此点开始的文件其余部分中包含服务器或其一个任务发送到 QoS 控制器的每个消息的一个日志条目。这些消息格式如下:
2012/05/08 00:15:09 QoS Controller: OpMsg=START Type=QOS ObjectType=ServerName ObjectValue=CN=rc45/O=dev ObjectType2=ProcessName ObjectValue2=nserver TimeDate=20120508T001506,95-04
2012/05/08 00:15:09 QoS Controller: OpMsg=START Type=SERVER TimeDate=20120508T001507,40-04
2012/05/08 00:15:21 QoS Controller: OpMsg=READY Type=SERVER TimeDate=20120508T001517,92-04
记录到 QoS 控制器日志文件的所有消息都带有时间戳。如果 QoS 控制器记录该消息,则其格式为:
TimeDate=20120508T001506,95-04
如果 QoS 控制器的一个其他线程向日志文件记录了消息,该消息格式如下:
2012/05/08 00:15:21 QoS Probe: message
2012/05/08 00:15:21 QoS Applications: message
2012/05/08 00:15:21 QoS Kill: message

在日志文件中要查找的内容

此表显示查看 QoS 控制器日志文件时应看到的基本记录事件的示例。

2. 基本记录事件的示例
事件 日志显示内容的示例
服务器正常启动
2012/05/08 00:15:09 QoS Controller: OpMsg=START Type=QOS ObjectType=ServerName ObjectValue=CN=rc45/O=dev ObjectType2=ProcessName ObjectValue2=nserver TimeDate=20120508T001506,95-04
2012/05/08 00:15:09 QoS Controller: OpMsg=START Type=SERVER TimeDate=20120508T001507,40-04
2012/05/08 00:15:10 QoS Applications: Clearing long running apps list
2012/05/08 00:15:21 QoS Controller: OpMsg=READY Type=SERVER TimeDate=20120508T001517,92-04
2012/05/08 00:15:21 QoS Controller: Server is ready to process requests
服务器正常关闭
2012/05/08 00:45:22 QoS Controller: OpMsg=END Type=SERVER ObjectType=Detail ObjectValue=Quit TimeDate=20120508T004516,01-04
2012/05/08 00:45:22 QoS Controller: Deactivating probe...
2012/05/08 00:45:22 QoS Controller: QoS Probe deactivated.
2012/05/08 00:45:26 QoS Controller: OpMsg=END Type=QOS ObjectType=ServerName ObjectValue=CN=rc45/O=dev TimeDate=20120508T004523,51-04
2012/05/08 00:45:27 QoS Applications: Clearing long running apps list
QoS 探测
2012/05/08 00:15:21 QoS Controller: Activating probe...
2012/05/08 00:15:21 QoS Controller: QoS Probe activated.
2012/05/08 00:15:21 QoS Probe: Starting qosprobe...
2012/05/08 00:15:25 QoS Probe: OpMsg=START, Type=PROBE
2012/05/08 00:16:25 QoS Probe: The QoS Probe is probing.
2012/05/08 00:16:25 QoS Probe: SUCCESS (156ms)
2012/05/08 00:17:25 QoS Probe: SUCCESS (16ms)
2012/05/08 00:18:25 QoS Probe: SUCCESS (31ms)
2012/05/08 00:19:25 QoS Probe: SUCCESS (16ms)
2012/05/08 00:20:26 QoS Probe: SUCCESS (15ms)
应用程序长时间运行
2012/05/08 00:38:32 QoS Controller: OpMsg=START Type=FIXUP ObjectType=DB ObjectValue=C:\Program Files\HCL\Domino\Data\ddm.nsf TimeDate=20120508T003826,18-04
2012/05/08 00:38:32 QoS Controller: OpMsg=END Type=FIXUP ObjectType=DB ObjectValue=C:\Program Files\HCL\Domino\Data\ddm.nsf TimeDate=20120508T003829,79-04
2012/05/08 00:38:32 QoS Applications: Adding FIXUP[C:\Program Files\HCL\Domino\Data\ddm.nsf] to long running apps list
2012/05/08 00:38:32 QoS Applications: Removing FIXUP[C:\Program Files\HCL\Domino\Data\ddm.nsf] from long running apps list..
2012/05/08 00:47:42 QoS Controller: OpMsg=START Type=COMPACT ObjectType=DB ObjectValue=events4.nsf TimeDate=20120508T004740,23-04
2012/05/08 00:47:42 QoS Controller: OpMsg=END Type=COMPACT ObjectType=DB ObjectValue=events4.nsf TimeDate=20120508T004740,23-04
2012/05/08 00:47:43 QoS Applications: Adding COMPACT[events4.nsf] to long running apps list
2012/05/08 00:47:43 QoS Applications: Removing COMPACT[events4.nsf] from long running apps list

日志文件中的服务器崩溃证据

QoS 控制器监控并记录崩溃事件,以便确保在合理的时间内执行结束和重新启动。要在 QoS 控制器日志中查看此证据,请在日志文件中搜索文本“=CRASH”。以下是示例:
2012/05/08 01:00:44 QoS Controller: OpMsg=CRASH Type=QOS ObjectType=ServerName ObjectValue=CN=rc45/O=dev TimeDate=20120508T010039,48-04
2012/05/08 01:00:44 QoS Controller: Server CN=rc45/O=dev has crashed.
2012/05/08 01:00:44 QoS Controller: Deactivating probe...
2012/05/08 01:00:44 QoS Controller: QoS Probe deactivated.

日志文件中的智能终止证据

QoS 控制器编码为基于从服务器或 QoS 探测接收的信息智能结束服务器。下面是从 QoS 探测超时执行的智能结束在 QoS 控制器文件中的示例:
2012/05/08 00:31:41 QoS Probe: SUCCESS (78ms)
2012/05/08 00:32:41 QoS Probe: SUCCESS (16ms)
2012/05/08 00:37:41 The probe thread has not received a message from qosprobe within the timeout period.
2012/05/08 00:37:41 QoS Probe: The qosprobe addin has timed out, is not responding, or is not running.
2012/05/08 00:37:41 QoS Controller: Deactivating probe...
2012/05/08 00:37:41 QoS Controller: QoS Probe deactivated.
2012/05/08 00:37:43 QoS Controller: OpMsg=TIMEOUT Type=PROBE TimeDate=null
2012/05/08 00:37:43 QoS Controller: The controller has received a probe timeout.
2012/05/08 00:37:43 QoS Kill: Triggering failover...
2012/05/08 00:37:47 QoS Kill: Running nsd...
2012/05/08 00:38:12 QoS Kill: Running nsd -kill
2012/05/08 00:38:16 QoS Kill: Setting kill complete.
2012/05/08 00:38:21 QoS Kill: Restarting DominoStarter thread