开源优测mysql程序员

性能测试必备监控技能MySQL篇15

2017-05-08  本文已影响476人  苦叶子

前言

性能测试过程中,数据库相关指标的监控是不可忽视的,在这里我们就MySQL的监控配置及重点涉及性能的一些参数进行说明。

在笔者的日常性能测试过程中,重点关注了这些参数,但不代表仅仅只有这些参数对性能有影响。

还需要大家在实践过程中,结合实际情况来调整相关参数,分析相关指标。达成深入优化的效果。

配置

配置以下配置选项开启记录慢查询和没有使用索引的查询功能

编辑 my.cnf或者my.ini文件。

注: 只对linux下进行说明。windows请自行去搜索。

将下述几行前的注释符号去掉,以开启相关功能

log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes 

输入,即可在console中查看到对应的慢sql和未使用索引的查询语句了。

tail -f mysql.log

show full processlist

显示哪些线程正在运行,如下图:

1.png

这个命令中最关键的就是state列,mysql列出的状态主要有以下几种:

==大部分状态对应很快的操作,只要有一个线程保持同一个状态好几秒钟,那么可能是有问题发生了,需要检查一下。==

show status

查看MySQL服务器状态信息。

2.png

直接使用该命令会输入几百行的数据,很难看。

下面我们看几个常用的带选项的命令

show status like 'uptime';
show status like 'com_select';
show [global] status like 'com_insert';
show [global] status like 'com_update';
show [global] status like 'com_delete';
show status like 'Thread_%';
show status like 'connections';
show status like 'threads_cached';
show status like 'table_locks_immediate';
show status like 'table_locks_waited';
show status like 'slow_queries';

系统慢查询状态检查

show global status like '%slow%';

mysqldumpslow命令

慢查询日志有可能会有很多重复的sql语句,我们如何过滤呢?Mysql有自带的命令mysqldumpslow可进行查询,例下列命令可以查出访问次数最多的20个sql语句

mysqldumpslow -s c -t 20 host-slow.log

sql执行各阶段所花费的时间

通过mysql自带profiling(性能分析)工具可以诊断某个sql各个执行阶段消耗的时间,每个执行阶段在cpu disk io等方面的消耗情况。

show variables like '%profiling%';

总结

mysql还有其他监控分析命令,需要大家去了解,请自行去搜索或是看官方文档,对于本文中列的命令,请几下来,并将本文收藏。在用的时候多尝试。

上一篇下一篇

猜你喜欢

热点阅读