文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  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表格中的消費者名稱使用底線,但是對於在啟動時設定的消費者,名稱中的破折號和底線是等效的。

效能架構包含數個提供組態資訊的系統變數

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,表示效能架構是否已啟用或停用。其他變數表示表格大小(列數)或記憶體配置值。

注意

啟用效能架構後,效能架構實例的數量會影響伺服器的記憶體用量,甚至可能達到很大的程度。效能架構會自動調整許多參數,以便僅在需要時使用記憶體;請參閱第 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。