zabbix監控Mysql中的QPS/TPS


今天我們來了解一下如何通過zabbix監控來監控我們msyql數據庫中的TPS和QPS,提到這兩個概念,我們先來了解究竟什么是QPS,TPS呢?它們是如何計算得到的呢?我們來看一下

QPS(Questions Per second:):每秒查詢處理量,表示每秒能處理多少次請求,這里是指是Mysql每秒處理查詢數,同時適用於InnoDB和MysqlSAM引擎

如何計算得到呢並計算QPS呢?

很簡單,通過"msyqladmin status" 就是先獲取到Questions和uptime對應的數值,隨后通過Questions/Uptime即可獲取

question=mysqladmin status |awk '{print $6}

uptime= mysqladmin status |awk '{print $2}'

QPS=question/uptime

TPS(Transactions Per Second)

每秒處理事務數,簡單的來說就是數據庫傳輸事務處理個數,這是指單台數據庫服務器在單位時間內處理的事務的個數。 ,支持事務的存儲引擎如InnoDB等特性指標

基於com_commit和com_rollback相加並除以uptim計算出TPS

rollback=mysqladmin extended-status | awk '/\<Com_rollback\>/{print $4}'
commit=mysqladmin extended-status | awk '/\<Com_commit\>/{print $4}'

tps=(com_rollback+com_commit)/uptime

ok~知道如何計算QPS和TPS之后,就好辦了,我們將其寫成腳本,在這里直接用shell即可

# mkdir /usr/local/zabbix/script -p

vim /usr/local/zabbix/script/monitor.sh 

#!/bin/bash
#Script time:2018-07-30
#Contact information Email:m18810455501@163.com
Uptime=`mysqladmin status | awk '{print $2}'`
QPS() {
 Questions=`mysqladmin status | awk '{print $6}'`
 awk 'BEGIN{printf "%.2f\n",'$Questions'/'$Uptime'}'
}
#TPS
TPS() {
 rollback=`mysqladmin extended-status | awk '/\<Com_rollback\>/{print $4}'`
 commit=`mysqladmin extended-status | awk '/\<Com_commit\>/{print $4}'`
 awk 'BEGIN{printf "%.2f\n",'$(($rollback+$commit))'/'$Uptime'}'
}
$1

# chmod 755 -R /usr/local/zabbix/script/monitor.sh 

# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/performance.conf

UserParameter=mysql.status[*],/usr/local/zabbix/script/monitor.sh "$1"

# egrep -v "#|^$" /usr/local/zabbix/etc/zabbix_agentd.conf   #zabbix-agent配置如下

LogFile=/tmp/zabbix_agentd.log
Server=192.168.2.129
ServerActive=192.168.2.129
Hostname=192.168.2.144
Timeout=8
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/performance.conf

Server端測試:可以獲取key值

【添加監控項】

 

上述便是QPS和TPS監控值狀態,因為是自己測試,沒有太多事務查詢和事務處理量,所以,監控值很小

思路總結:

1)首先我們的zabbix是沒有監控mysql這些性能指標的,因此我們要自定義,我們要通過mysql status獲取到Quetions和uptime的的數值計算出QPS,隨后我們在獲取commit和rollback的的數值相加在除以uptime的的時間值,這樣既能獲取QPS和TPS的每秒事務查詢數和處理數

2)寫入腳本定義在key值(在UserParameter中定義)

3)模板創建


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM