Mysql(二) 寻找瓶颈:基准测试与性能分析
概述:基准测试与性能分析是发现系统瓶颈的两个基本方法。
1.基准测试策略
集成式(Full-Stack)基准测试 和单组件式(Single-Component)基准测试
2.测试指标
每时间单位的事务处理量(吞吐量)
响应时间或时延
扩展性
并发性--在峰值时间用户可以产生多少并发请求
3.基准测试方法
4.基准测试工具
ab(集成测试工具)
http_load(集成测试工具)
JMeter(集成测试工具)
mysqlslap(单组件式测试工具)
sysbench(单组件式测试工具)
Database Test Suite(单组件式测试工具)
Mysql Benchmark Suite(sql-bench)(单组件式测试工具)
Super Smack(单组件式测试工具)
5.性能分析
6.Mysql分析
记录查询 :普通日志(General Log)和慢速日志(Slow Log)
log-slow-queries=<file_name>
long_query_time=2
log-queries-not-using-indexes
log-slow-admin-statements
日志分析工具:
Mysqldumpslow
Mysql_slow_log_filter
Mysql_slow_log_parser
Mysqlsla
7.分析Mysql服务器
为了了解服务器在什么任务上花费了最多时间,一个最好的分析方法是使用show status
mysqladmin extended –r –i 10
一些值得监控的变量:
Bytes_received 和Bytes_sent 和服务器之间来往的流量
Com_* 服务器正在执行的命令
Created_* 在查询执行期间创建的临时表和文件
Handler_* 存储引擎操作
Select_* 不同类型的链接执行计划
Sort_* 几种排序信息
可以使用这种方法监视Mysql的内部操作,也可以使用Mysqlreport这样的工具来分析SHOW STATUS产生的结果,得到服务器总体健康状况的快照。分析Mysql服务器的另外一种好办法是使用SHOW PROCESSLIST,它不仅可以显示哪种查询正在执行,也能看到连接的状态。
8.使用show status分析查询
flush status 和 show session status
flush status 把会话状态变量设置为零