MySQL Shell 9.0  /  ...  /  collectHighLoadDiagnostics 公用程式

11.8.2 collectHighLoadDiagnostics 公用程式

關於公用程式

util.debug.collectHighLoadDiagnostics() 會在您的 MySQL 伺服器上執行多次診斷報告迭代,讓您能夠在負載下分析伺服器的多個方面。

高負載診斷報告會產生為 zip 檔案,輸出至本機目錄或指定的路徑。

公用程式會產生 TSV 和 YAML 格式的檔案。

需求和限制

下列需求適用於使用診斷收集公用程式的匯出

  • 需要 MySQL 5.7 或更新版本。

  • 公用程式必須以 root 身分執行。

執行公用程式

診斷公用程式具有下列簽章

  util.debug.collectHighLoadDiagnostics(path, {options})

下列範例會將 zip 檔案寫入使用者的暫存目錄、執行 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 之使用者的權限執行,應謹慎使用。