zoukankan      html  css  js  c++  java
  • 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("
    %s,%d"%(fullDate,QPS))
    29         outFile.close()
    30         file.close()

    然后执行脚本,计算结果导出到QPS.csv:

  • 相关阅读:
    你像一道阳光,照进我的心里
    why
    存储过程 或视图的字符串查询
    C# DataGridView 导出Excle代码和总结(转)
    年夜饭
    登陆SQL Server 2008时提示评估期已过的解决办法
    斐波那契可以考虑的地方?
    解决 UPDATEPANEL 内 ScriptManager1.SetFocus 设置焦点 输入法 变更的问题
    跨域 iframe 读写 cookie的 那点事
    javascript 节点操作
  • 原文地址:https://www.cnblogs.com/minglee/p/10950423.html
Copyright © 2011-2022 走看看