util.debug.collectHighLoadDiagnostics() 在 MySQL 服务器上运行多次诊断报告迭代,使您能够在负载情况下分析服务器的多个方面。
高负载诊断报告生成为一个 zip 文件,存储在本地目录或指定的路径中。
该实用程序生成 TSV 和 YAML 格式的文件。
诊断实用程序具有以下签名
  util.debug.collectHighLoadDiagnostics(path, {options})以下示例将 zip 文件写入用户的临时目录,执行 5 次收集迭代,并启用所有性能模式检测点和使用者
      util.debug.collectHighLoadDiagnostics("/home/userName/temp/highLoad.zip", {iterations: 5, pfsInstrumentation: "full"})此实用程序返回的数据还包括 util.debug.collectDiagnostics() 收集的数据。
- iterations:数字
- 默认为 2。高负载诊断数据收集的迭代次数。 
- delay:数字
- 默认为 300 秒。高负载诊断数据收集迭代之间的秒数。 
- innodbMutex:[true | false]
- 
默认为 false。如果设置为 true,则收集 SHOW ENGINE INNODB MUTEX的输出。注意此参数可能会影响性能。 
- pfsInstrumentation:[current | medium | full]
- 
默认为 current。定义使用哪些性能模式检测点和使用者。可能的值为 - current:当前启用的性能模式检测点和使用者。不对服务器配置进行任何更改。
- medium:启用除- %history和- %history_long之外的所有使用者,以及除- wait/synch/%之外的所有检测点。
- full:启用所有使用者和所有检测点。
 
- customSql:数组
- 
要运行的一个或多个 SQL 语句。您可以使用以下前缀控制语句何时运行 - PRE:默认值。在指标收集迭代开始之前,该语句运行一次。
- POST:指标收集迭代完成后,该语句运行一次。
- ITER:对于指标收集的每次迭代,该语句都运行一次。
 例如 {"customSql": ["statement1", "statement2", "statement3"]}
- customShell 数组
- 
要运行的一个或多个 Shell 命令。您可以使用以下前缀控制命令何时运行 - BEFORE:默认值。在指标收集迭代开始之前,该语句运行一次。
- DURING:对于指标收集的每次迭代,该语句都运行一次。
- AFTER:指标收集迭代完成后,该语句运行一次。
 例如 {"customShell": ["command1", "command2", "command3"]}重要提示这些命令使用运行 MySQL Shell 的用户的权限运行,应谨慎使用。