MySQL如何監控效能

喜歡本文章的請點贊關注加轉發,更多文章可以看往期

在MySQL中,當效能出現問題,我們時如何從監控中發現呢?

一般用SHOW STATUS語句評估系統的健康狀況。從兩個類別中進行選擇(類似於動態變數),這兩個類別就是:全域性和會話兩類。以下舉例說明:

使用SHOW [GLOBAL | SESSION] STATUS命令

mysql> SHOW GLOBAL STATUS; +————————————-+————-+ | Variable_name | Value | +————————————-+————-+ | Aborted_clients | 0 | | Aborted_connects | 0 | | Binlog_cache_disk_use | 0 | 。

查詢performance Schema global_status或session_status表

mysql> SELECT * FROM performance_schema。session_status; +——————————————+————————+ | VARIABLE_NAME | VARIABLE_VALUE | +——————————————+————————+ | Aborted_clients | 0 | | Aborted_connects | 1 | | Binlog_cache_disk_use | 0 |

使用帶有以下選項的mysqladmin命令列程式來監視MySQL

例如想顯示短狀態訊息,我們可以輸入

# mysqladmin status

Uptime: 240236 Threads: 5 Questions: 1683400 Slow queries: 3 Opens: 3440 Flush tables: 1 Open tables: 140 Queries per second avg: 7。007

例如顯示伺服器狀態變數及其值:

# mysqladmin extended-status

它等價於

SHOW GLOBAL STATUS語句,可以

使用flush-status選項清除狀態值。

例如列出活動伺服器執行緒:

# mysqladmin processlist –-verbose

相當於顯示完整的PROCESSLIST

Performance Schema

我們重點說一下Performance Schema,它是

MySQL用來跟蹤效能指標的一組記憶體表。它作為PERFORMANCE_SCHEMA儲存引擎實現,透過對performance_schema資料庫中的表進行操作。可以幫助我們提供對資料庫活動的洞察,例如:哪些查詢正在執行,I/O等待統計,歷史性能資料等等。但

Performance Schema

僅在構建期間配置支援時可用,不過在Oracle二進位制發行版中總是可用的,如果可用,則預設啟用。要啟用或禁用它,啟動伺服器時將performance_schema變數設定為適當的值即可。

可以透過修改setup_%表的內容來配置Performance Schema。setup_%表內包含setup_actors:監控哪些前臺執行緒(客戶端連線),setup_objects:監控哪些資料庫物件(表、儲存過程、觸發器、事件) ,setup_timers:用於定時事件的資料型別,setup_instruments表示哪個伺服器度量

效能模式的收集。setup_consumers表示儲存被檢測事件的地方。

performance_schema 的工具(

Instruments)

對應於MySQL伺服器原始碼,在Performance Schema中有許多工具,工具名稱由由‘/’字元分隔的元件序列組成。例如有:

wait/io/file/myisam/log wait/io/file/mysys/charset wait/lock/table/sql/handler wait/synch/mutex/sql/LOCK_delete wait/synch/rwlock/sql/Query_cache_query::lock stage/sql/closing tables stage/sql/Sorting result statement/com/Execute statement/sql/create_table

工具的組成部分從左到右從一般到更具體。比較好用的工具有:

idle:一個被檢測的idle事件。這臺工具沒有子部件。

memory:一個被檢測的memory事件

stage

:一個被檢測的

stage

事件

statement:一個被檢測的statement事件

transaction:一個被檢測的transaction事件。這臺工具沒有其他部件。

wait:一個被檢測的wait事件

在Performance Schema表中有很多工具和表,很難知道需要要監控哪些。所以,在MySQL中運用系統模式,以幫助dba解釋效能模式,以實現典型的調優和診斷用例。包括了以下

檢視:將效能模式資料總結為更容易理解的格式。

儲存過程:幫助dba配置Performance Schema和生成診斷報告

儲存函式:查詢Performance Schema配置並以不同方式格式化輸出