MySQL實時計算QPS,TPS的SHELL指令碼兩例
QPS:每秒的查詢數
TPS:每秒的事物量(commit與rollback的之和)
第一例:
#cat mysql_qps.sh
#!/bin/bash
MYSQL_CON="/usr/local/mysql/bin/mysql"
TIME="$1"
OLD_QUERY=`$MYSQL_CON -e "show global status like 'questions';" | awk -F[' ','s'] 'NR==2{print $3}'`
echo "$OLD_QUERY"
sleep "$TIME"
NEW_QUERY=`$MYSQL_CON -e "show global status like 'questions';" | awk -F[' ','s'] 'NR==2{print $3}'`
echo "$NEW_QUERY"
TIME_QUERY=`expr $NEW_QUERY - $OLD_QUERY`
QPS=`expr $TIME_QUERY / $TIME`
echo "$QPS"
檢視接下來10s的QPS:
# ./mysql_qps.sh 10
第二例:透過mysqladmin間隔讀取mysql的status資訊,計算差值,得出統計資訊。
# cat mysql_qps-tps.sh
#!/bin/bash
/usr/local/mysql/bin/mysqladmin -uroot -p'root' extended-status -i1|awk 'BEGIN{local_switch=0;print "QPS Commit Rollback TPS Threads_con Threads_run \n------------------------------------------------------- "}
$2 ~ /Queries$/ {q=$4-lq;lq=$4;}
$2 ~ /Com_commit$/ {c=$4-lc;lc=$4;}
$2 ~ /Com_rollback$/ {r=$4-lr;lr=$4;}
$2 ~ /Threads_connected$/ {tc=$4;}
$2 ~ /Threads_running$/ {tr=$4;
if(local_switch==0)
{local_switch=1; count=0}
else {
if(count>10)
{count=0;print "------------------------------------------------------- \nQPS Commit Rollback TPS Threads_con Threads_run \n------------------------------------------------------- ";}
else{
count+=1;
printf "%-6d %-8d %-7d %-8d %-10d %d \n", q,c,r,c+r,tc,tr;
}
}
}'
執行結果如下:
# ./mysql_qps-tps.sh
QPS Commit Rollback TPS Threads_con Threads_run
-------------------------------------------------------
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
3104 292 400 692 350 3
2488 246 305 551 350 2
3394 331 440 771 350 3
3066 279 395 674 350 3
3400 316 442 758 350 2
3082 278 415 693 350 3
3533 275 430 705 350 3
2638 249 356 605 350 2
3819 315 523 838 350 2
3206 287 449 736 350 2
2949 259 408 667 350 2
-------------------------------------------------------
QPS Commit Rollback TPS Threads_con Threads_run
-------------------------------------------------------
2985 284 399 683 350 2
3042 288 402 690 350 2
3208 282 431 713 350 4
3232 290 437 727 350 2
3220 287 435 722 350 5
3270 308 431 739 350 2
4022 373 546 919 350 2
5497 521 721 1242 350 3
328 18 32 50 350 2
4606 434 602 1036 350 2
1070 101 129 230 350 2
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2287165/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 幾例實用的Shell指令碼指令碼
- 自動化指令碼安裝mysql shell指令碼範例指令碼MySql
- 分享兩個實用的shell指令碼指令碼
- QPS/TPS 的介紹
- 實用QPS和TPS高的高效分析方法
- Shell指令碼應用兩個例子指令碼
- 7 個日常實用的 Shell 拿來就用指令碼例項!指令碼
- 自動定時備份 mysql 資料庫 的 shell 指令碼MySql資料庫指令碼
- LINUX Shell指令碼程式設計例項詳解(一)上Linux指令碼程式設計
- MySQL的一些功能實用的Linux shell指令碼分享MySqlLinux指令碼
- Bash Shell指令碼中的陣列使用例項指令碼陣列
- QPS和TPS有什麼區別?
- MySQL資料庫備份的shell指令碼MySql資料庫指令碼
- Shell指令碼最佳實踐指令碼
- 如何提高系統的吞吐量(QPS/TPS)
- 兩套mysql備份指令碼MySql指令碼
- Shell 指令碼程式設計陷阱指令碼程式設計
- Linux Shell指令碼時間排程Linux指令碼
- MySQL5.7/8.0效能分析shell指令碼MySql指令碼
- Liunx備份mysql資料庫的shell指令碼MySql資料庫指令碼
- 什麼是QPS、TPS、RT、吞吐量?
- 9個實用shell指令碼指令碼
- 【Linux】【Shell】主控指令碼實現Linux指令碼
- shell指令碼指令碼
- 透過原始碼看看Redis中如何計算QPS原始碼Redis
- 適合時間序列資料的計算指令碼指令碼
- Linux Crontab Shell指令碼實現秒級定時任務Linux指令碼
- SQL 的後計算指令碼SQL指令碼
- shell指令碼程式設計筆記指令碼程式設計筆記
- 7.shell指令碼程式設計指令碼程式設計
- shell指令碼:監控MySQL服務是否正常指令碼MySql
- MySQL 批量更新、刪除資料shell指令碼MySql指令碼
- Shell指令碼監控MySQL主從狀態指令碼MySql
- Shell指令碼程式設計規範與變數(shell指令碼必須要知道的規矩!)指令碼程式設計變數
- shell指令碼實現DNS正向解析指令碼DNS
- Shell程式設計-01-Shell指令碼初步入門程式設計指令碼
- linux常用的shell指令碼Linux指令碼
- 常用shell指令碼指令碼