util.debug.collectHighLoadDiagnostics()
會在您的 MySQL 伺服器上執行多次診斷報告迭代,讓您可以在負載下分析伺服器的多個方面。
高負載診斷報告會以 zip 檔案形式產生至本機目錄或指定的路徑。
此工具會產生 TSV 和 YAML 格式的檔案。
此診斷工具具有下列簽章
util.debug.collectHighLoadDiagnostics(path, {options})
下列範例會將 zip 檔案寫入使用者的 temp 目錄,執行 5 次收集迭代,並啟用所有效能結構描述儀器和取用者
util.debug.collectHighLoadDiagnostics("/home/userName/temp/highLoad.zip", {iterations: 5, pfsInstrumentation: "full"})
此工具傳回的資料也包含 util.debug.collectDiagnostics()
所收集的資料。
- iterations: number
預設值為 2。高負載診斷資料收集的迭代次數。
- delay: number
預設值為 300 秒。高負載診斷資料收集迭代之間的時間間隔秒數。
- innodbMutex: [true | false]
-
預設值為 false。如果設定為 true,則會收集
SHOW ENGINE INNODB MUTEX
的輸出。注意此參數可能會影響效能。
- pfsInstrumentation: [current | medium | full]
-
預設值為 current。定義要使用的效能結構描述儀器和取用者。可能的值為
current
:目前已啟用的效能結構描述儀器和取用者。不會變更伺服器的組態。medium
:啟用除了%history
和%history_long
之外的所有取用者,以及除了wait/synch/%
之外的所有儀器。full
:啟用所有取用者和所有儀器。
- customSql:
array
-
要執行的一個或多個 SQL 陳述式。您可以使用下列前置詞控制陳述式執行的時間
PRE
:預設值。此陳述式會在度量收集迭代開始之前執行一次。POST
:此陳述式會在度量收集迭代完成之後執行一次。ITER
:此陳述式會針對度量收集的每個迭代執行一次。
例如
{"customSql": ["statement1", "statement2", "statement3"]}
- customShell
array
-
要執行的一個或多個 Shell 命令。您可以使用下列前置詞控制命令執行的時間
BEFORE
:預設值。此陳述式會在度量收集迭代開始之前執行一次。DURING
:此陳述式會針對度量收集的每個迭代執行一次。AFTER
:此陳述式會在度量收集迭代完成之後執行一次。
例如
{"customShell": ["command1", "command2", "command3"]}
重要事項這些命令會以執行 MySQL Shell 的使用者權限執行,應謹慎使用。