首頁>技術>

一、背景

QAN(Query Analytics)慢查詢日誌分析工具是 PMM 的一部分,PMM 是 percona 公司提供的一個對於 MySQL 和 MongoDB 的監控和管理平臺。官方給出的描述是:The QAN is a special dashboard which enables database administrators and application developers to analyze database queries over periods of time and find performance problems. QAN helps you optimize database performance by making sure that queries are executed as expected and within the shortest time possible. In case of problems, you can see which queries may be the cause and get detailed metrics for them。這是一個慢查詢日誌的展示工具,能夠幫助 DBA 或者開發人員分析資料庫的效能問題,給出全面的資料擺脫直接檢視 slow-log。那麼接下來,給大家介紹下 QAN 和其頁面的指標吧。

二、QAN(Query Analytics)

PMM 目前有 2 個版本,但是對於 QAN 來說其大致由三部分組成:

QAN-Agent(client):負責採集 slow-log 的資料並上報到服務端QAN-API(server):負責儲存採集的資料,並對外提供查詢介面QAN-APP:專門用來展示慢查詢資料的 grafana 第三方外掛1. 資料流轉

slow-log --> QAN-Agent --> QAN-API <--> QAN-APP(grafana)

2. pmm1 架構圖三、slow-log

MySQL 的慢查詢日誌是 MySQL 提供的一種日誌記錄,它用來記錄在 MySQL 中響應時間超過閥值的語句,具體指執行時間超過 long_query_time(預設 10 秒)的 SQL,則會被記錄到慢查詢日誌中,慢查詢日誌檔案格式如下:

...# Time: 2020-04-25T05:29:35.954373Z# User@Host: root[root] @ localhost []  Id:     9# Query_time: 5.000901  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0SET timestamp=1587792575;select sleep(5);# Time: 2020-04-25T05:43:07.595615Z# User@Host: root[root] @ localhost []  Id:     9# Query_time: 5.000904  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0SET timestamp=1587793387;select sleep(5);...
Query_time:語句執行時間,以秒為單位Lock_time:獲取鎖的時間,以秒為單位Rows_sent:傳送給客戶端的行數Rows_examined:檢查的行數(不計算儲存引擎內部的處理)SET timestamp:寫入慢查詢日誌檔案的每個語句之前都有一個 SET 語句,該 SET 語句包括一個時間戳,指示時間戳何時記錄慢語句(在該語句完成執行之後發生)四、頁面1. Query Analysis

預設展示 top 10 的慢 SQL,表格包含三列指標資訊 Load、Count、Latency。

下圖是測試一條慢 SQL select sleep(5) 生成的資料,選定 2 分鐘的頁面:

1.1 Load

代表選定時間段內,資料庫伺服器該 query 查詢時間 的時間佔比,通過公式計算:query_time/(end_time - start_time):20/120 ~= 0.17。

1.2 Count

代表選定時間段內,該 query 的請求總數。

1.3 Latency

代表選定時間段內,展示該 query 的執行平均時間、最大時間、最小時間、時間 95%(拋棄前 5% 的資料在求平均,目的是為了去除尖峰);

2. Metrics

選中 Query Analysis 中的一列 query 後,即可展示該 query 的詳細資訊,包括Query_time、Lock_time、Rows_sent、Rows_examined,對應的是 slow-log 的內容 。

3. 額外資訊

選中 Query Analysis 中的一列 query 後,也會額外提供 query 涉及的一些資訊,包括:EXPLAIN,SHOW CREATE TABLE,SHOW INDEX 來幫助資料庫運維人員快速定位問題。

參考連結

https://www.percona.com/blog/2018/06/08/understanding-pmm-qan-graphs-metrics/

https://www.percona.com/doc/percona-monitoring-and-management/2.x/qan-top-ten.html

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 帶你了解 vue-next(Vue 3.0)之 小試牛刀【實踐】