Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

Full Time Diagnostic Data Capture

在此页面上

  • 行为
  • 详情

为了帮助MongoDB工程师分析服务器行为, mongodmongos进程包括全时诊断数据捕获 (FTDC) 机制。 FTDC默认处于启用状态。 由于 FTDC 在调试部署中的重要性,FTDC 线程故障是致命的,会停止父mongodmongos进程。

注意

Windows 上的 FTDC 用户权限

在 Windows 上,要收集磁盘、CPU 和内存等系统数据,FTDC 需要以下群组的 Microsoft 访问权限:

  • 性能监控用户

  • Performance Log Users

如果运行 mongodmongos 的用户不是管理员,请将其添加到这些群组中以记录 FTDC 数据。有关更多信息,请参阅此处的 Microsoft 文档

FTDC 定期收集以下命令产生的统计数据:

根据主机操作系统,诊断数据可能包括以下一项或多项利用率统计信息:

  • CPU使用率

  • 内存利用率

  • 磁盘利用率与性能相关。FTDC 不包括与存储容量相关的数据。

  • 网络性能统计信息。FTDC 仅捕获元数据,不捕获或检查任何网络数据包。

注意

如果 mongod 进程在容器中运行,FTDC 将从容器而不是主机操作系统的角度报告利用率统计信息。例如,如果 mongod 在配置了 RAM 限制的容器中运行,FTDC 会根据容器的 RAM 限制(而不是主机操作系统的 RAM 限制)计算内存利用率。

FTDC 在文件轮转或启动时收集以下命令产生的统计数据:

mongod 进程将 FTDC 数据文件存储在 storage.dbPath 实例下的 diagnostic.data 目录中。所有诊断数据文件均存储在此目录中。例如,假定 dbPath/data/db,则诊断数据目录将为 /data/db/diagnostic.data

mongos 进程将 FTDC 数据文件存储在相对于 systemLog.path 日志路径设置的诊断目录中。MongoDB 截断日志路径的文件扩展名并将 diagnostic.data 连接到剩余名称。例如,如果 path 设置为 /var/log/mongodb/mongos.log,则诊断数据目录将为 /var/log/mongodb/mongos.diagnostic.data

FTDC 数据文件是经过压缩的,不适合人直接阅读。它们继承了与 MongoDB 数据文件相同的文件访问权限。只有有权访问 FTDC 数据文件的用户才能传输 FTDC 数据。

没有系统所有者或运营者的明确许可和协助,MongoDB 工程师将无法访问 FTDC 数据。

FTDC 数据在任何情况下都不会包含以下任何信息:

  • 查询、查询谓词或查询结果的样本

  • 从任一最终用户集合或索引中采样的数据

  • 系统或 MongoDB 用户档案或安全证书

FTDC 数据包含某些主机信息,如主机名、操作系统信息以及用于启动 mongodmongos 的选项或设置。某些组织或监管机构可能将此信息视为受保护或保密,但通常不视为个人身份信息 (PII)。对于这些字段配置了受保护、机密或 PII 数据的集群,请在发送 FTDC 数据之前通知 MongoDB 工程师,以协调适当的安全措施。

您可在 MongoDB GitHub 存储库中查看 FTDC 源代码。ftdc_system_stats_*.ccp 文件专门定义了已捕获的所有特定于系统的诊断数据。

FTDC 按以下默认值运行:

  • 每 1 秒采集一次数据

  • 最大diagnostic.data 文件夹大小为 200MB。

这些默认值旨在为 MongoDB 工程师提供有用的数据,同时尽量减轻对性能或存储空间的影响。仅当 MongoDB 工程师出于特定诊断目的请求修改时,才需要修改这些值。

要禁用 FTDC,请在配置文件的 setParameter 设置中使用diagnosticDataCollectionEnabled: false 选项启动 mongodmongos

setParameter:
diagnosticDataCollectionEnabled: false

在 MongoDB 工程师的支持下,禁用 FTDC 可能会增加分析或调试问题时所需的时间或资源。有关 MongoDB 支持的信息,请访问 MongoDB 支持入门

后退

UNIX ulimit

在此页面上