mysql計算QPS


首先連接上mysql:

$ mysql -h 192.168.0.x -P3306 -uusername -p123456

進入Mysql之后,查詢general_log:

mysql>  SHOW VARIABLES LIKE "general_log%";
+------------------+----------------------------+
| Variable_name    | Value                      |
+------------------+----------------------------+
| general_log      | OFF                        |
| general_log_file | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+
2 rows in set (0.00 sec)

如果這個時候general_log是關閉的,可用命令設置為ON:

mysql> SET GLOBAL general_log = 'ON';
Query OK, 0 rows affected (0.00 sec)

同理也可以設置文件路徑:

mysql> SET GLOBAL general_log_file = '/var/run/mysqld/mysqld.log';
Query OK, 0 rows affected (0.06 sec)

打開/var/run/mysqld/mysqld.log文件看到的是如下展示:

Time            Id  Command     Argument
190529 22:26:07 4   Query       REPLACE INTO *
                1   Query       REPLACE INTO *
                4   Query       REPLACE INTO *
                1   Query       REPLACE INTO *

從該文件可以看出來,秒數發生改變的時候,才會打印帶日期的日志。那么可用通過該文件兩個帶日期的行之間的行數差距,即可算出其QPS:

  • 篩選帶有日期的行,帶上行號轉存到文件
$ grep "^1905" -n mysqld.log > Line.txt 
  • 編寫一個Python腳本,計算QPS
 1 #coding=utf-8
 2 import os,sys
 3 
 4 if __name__ == '__main__':
 5         file = open('Line.txt', 'r')
 6         if file == None:
 7                 print "open file failed"
 8                 sys.exit(1)
 9         outFile = open("QPS.csv", 'w')
10         outFile.write("Time,QPS");
11         lastLine = 0
12         for line in file:
13                 params = line.split(' ')
14                 if len(params) < 2:
15                         continue
16 
17                 time = params[1]
18                 lineAndDate = params[0]
19                 subParams = lineAndDate.split(':')
20                 if len(subParams) < 2:
21                         continue
22                 line = int(subParams[0])
23                 date = subParams[1]
24                 fullDate = "%s %s" %(date, time)
25                 QPS = line - lastLine
26                 lastLine = line
27 
28                 outFile.write("\r\n%s,%d"%(fullDate,QPS))
29         outFile.close()
30         file.close()

然后執行腳本,計算結果導出到QPS.csv:

 


免責聲明!

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



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