文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
手冊頁面 (TGZ) - 258.5Kb
手冊頁面 (Zip) - 365.5Kb
資訊 (Gzip) - 4.0Mb
資訊 (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  MySQL Performance Schema  /  Performance Schema 啟動設定

29.3 Performance Schema 啟動設定

若要使用 MySQL Performance Schema,必須在伺服器啟動時啟用,才能開始收集事件。

Performance Schema 預設為啟用。若要明確啟用或停用它,請使用設定為適當值的 performance_schema 變數啟動伺服器。例如,在伺服器 my.cnf 檔案中使用這些行

[mysqld]
performance_schema=ON

若伺服器在 Performance Schema 初始化期間無法配置任何內部緩衝區,則 Performance Schema 會自行停用並將 performance_schema 設定為 OFF,且伺服器會在沒有檢測的情況下執行。

Performance Schema 也允許在伺服器啟動時設定工具和消費者。

若要在伺服器啟動時控制工具,請使用此格式的選項

--performance-schema-instrument='instrument_name=value'

在此,instrument_name 是工具名稱,例如 wait/synch/mutex/sql/LOCK_open,而 value 是下列其中一個值

  • OFFFALSE0:停用工具

  • ONTRUE1:啟用工具並計時

  • COUNTED:啟用工具並計數 (而不是計時)

每個 --performance-schema-instrument 選項只能指定一個工具名稱,但可以給定多個選項執行個體來設定多個工具。此外,工具名稱中允許使用模式,以設定符合模式的工具。若要將所有條件同步工具設定為啟用和計數,請使用此選項

--performance-schema-instrument='wait/synch/cond/%=COUNTED'

若要停用所有工具,請使用此選項

--performance-schema-instrument='%=OFF'

例外狀況:memory/performance_schema/% 工具是內建的,無法在啟動時停用。

較長的工具名稱字串優先於較短的模式名稱,無論順序為何。如需指定模式以選取工具的相關資訊,請參閱第 29.4.9 節,〈為篩選作業命名工具或消費者〉

無法辨識的工具名稱會被忽略。稍後安裝的外掛程式可能會建立工具,此時會辨識並設定該名稱。

若要在伺服器啟動時控制消費者,請使用此格式的選項

--performance-schema-consumer-consumer_name=value

在此,consumer_name 是消費者名稱,例如 events_waits_history,而 value 是下列其中一個值

  • OFFFALSE0:不收集消費者的事件

  • ONTRUE1:收集消費者的事件

例如,若要啟用 events_waits_history 消費者,請使用此選項

--performance-schema-consumer-events-waits-history=ON

可以藉由檢查 setup_consumers 資料表來找到允許的消費者名稱。不允許使用模式。setup_consumers 資料表中的消費者名稱使用底線,但是對於在啟動時設定的消費者,名稱中的破折號和底線是等效的。

Performance Schema 包含數個提供設定資訊的系統變數

mysql> SHOW VARIABLES LIKE 'perf%';
+--------------------------------------------------------+---------+
| Variable_name                                          | Value   |
+--------------------------------------------------------+---------+
| performance_schema                                     | ON      |
| performance_schema_accounts_size                       | 100     |
| performance_schema_digests_size                        | 200     |
| performance_schema_events_stages_history_long_size     | 10000   |
| performance_schema_events_stages_history_size          | 10      |
| performance_schema_events_statements_history_long_size | 10000   |
| performance_schema_events_statements_history_size      | 10      |
| performance_schema_events_waits_history_long_size      | 10000   |
| performance_schema_events_waits_history_size           | 10      |
| performance_schema_hosts_size                          | 100     |
| performance_schema_max_cond_classes                    | 80      |
| performance_schema_max_cond_instances                  | 1000    |
...

performance_schema 變數為 ONOFF,表示效能架構 (Performance Schema) 是否啟用。其他變數則表示表格大小 (列數) 或記憶體配置值。

注意

啟用效能架構後,效能架構的實例數量會影響伺服器的記憶體佔用量,甚至可能影響很大。效能架構會自動調整許多參數,僅在需要時使用記憶體;請參閱第 29.17 節「效能架構記憶體配置模型」

若要變更效能架構系統變數的值,請在伺服器啟動時設定它們。例如,在 my.cnf 檔案中放入以下幾行,即可變更等待事件的歷史記錄表格大小

[mysqld]
performance_schema
performance_schema_events_waits_history_size=20
performance_schema_events_waits_history_long_size=15000

如果未明確設定,效能架構會在伺服器啟動時自動調整數個參數的值。例如,它會以這種方式調整控制事件等待表格大小的參數。效能架構會以遞增方式配置記憶體,使其記憶體使用量隨著實際伺服器負載而調整,而不是在伺服器啟動期間配置所有需要的記憶體。因此,許多大小調整參數根本不需要設定。若要查看哪些參數是自動調整大小或自動調整的,請使用 mysqld --verbose --help 並檢查選項說明,或參閱第 29.15 節「效能架構系統變數」

對於每個在伺服器啟動時未設定的自動調整大小參數,效能架構會根據以下系統值的值來決定如何設定其值,這些值被視為關於您如何配置 MySQL 伺服器的提示

max_connections
open_files_limit
table_definition_cache
table_open_cache

若要覆寫給定參數的自動調整大小或自動調整,請在啟動時將其設定為 -1 以外的值。在這種情況下,效能架構會將其設定為指定的值。

在執行期間,SHOW VARIABLES 會顯示自動調整大小參數的實際設定值。自動調整的參數則顯示為 -1。

如果停用效能架構,其自動調整大小和自動調整的參數仍會設定為 -1,且 SHOW VARIABLES 會顯示 -1。