MySQL實時計算QPS,TPS的SHELL指令碼兩例

chenfeng發表於2019-01-02

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章