绝大多数MySQL性能指标可以通过以下两种方式获取:
(1) mysqladmin
使用mysqladmin extended-status命令获得的MySQL的性能指标,默认为累计值。如果想了解当前状态,需要进行差值计算;加上参数 –relative(-r),就可以看到各个指标的差值,配合参数–sleep(-i)就可以指定刷新的频率。
(2) Show global status
可以列出MySQL服务器运行各种状态值,同样也是累计值。
mysqladmin extended-status命令及show global status得到的指标项特别多。实际应用中,重点关注以下性能指标:
1. tps/qps
tps: Transactions Per Second,每秒事务数;
qps: Queries Per Second每秒查询数;
通常有两种方法计算tps/qps:
方法1:
基于 com_commit、com_rollback 计算tps,基于 questions 计算qps。
TPS = Com_commit/s + Com_rollback/s
其中,
Com_commit /s= mysqladmin extended-status –relative –sleep=1|grep -w Com_commit
$ mysqladmin -u root -p extended-status --relative --sleep=1 | grep -w Com_commit
Com_rollback/s = mysqladmin extended-status –relative –sleep=1|grep -w Com_rollback
$ mysqladmin -u root -p extended-status --relative --sleep=1 | grep -w Com_rollback
QPS 是指MySQL Server 每秒执行的Query总量,通过Questions (客户的查询数目)状态值每秒内的变化量来近似表示,所以有:
QPS = mysqladmin extended-status –relative –sleep=1|grep -w Questions
$ mysqladmin -u root -p extended-status --relative --sleep=1 | grep -w Questions
仿照上面的方法还可以得到,mysql每秒select、insert、update、delete的次数等,如:
Com_select/s = mysqladmin extended-status –relative –sleep=1|grep -w Com_select
$ mysqladmin -u root -p extended-status --relative --sleep=1 | grep -w Com_select
Com_select/s:平均每秒select语句执行次数
Com_insert/s:平均每秒insert语句执行次数
Com_update/s:平均每秒update语句执行次数
Com_delete/s:平均每秒delete语句执行次数
方法2:
基于com_%计算tps , qps
tps= Com_insert/s + Com_update/s + Com_delete/s
qps=Com_select/s + Com_insert/s + Com_update/s + Com_delete/s