阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

详解MySQL性能指标及计算方法

52次阅读
没有评论

共计 3635 个字符,预计需要花费 10 分钟才能阅读完成。

绝大多数 MySQL 性能指标可以通过以下两种方式获取:

详解 MySQL 性能指标及计算方法

mysqladmin

使用 mysqladmin extended-status 命令获得的 MySQL 的性能指标,默认为累计值。如果想了解当前状态,需要进行差值计算 ;加上参数 –relative(-r),就可以看到各个指标的差值,配合参数 –sleep(-i) 就可以指定刷新的频率。

详解 MySQL 性能指标及计算方法

详解 MySQL 性能指标及计算方法

Show global status

可以列出 MySQL 服务器运行各种状态值,累计值

详解 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

Com_rollback/s = mysqladmin extended-status –relative –sleep=1|grep -w Com_rollback

QPS 是指 MySQL Server 每秒执行的 Query 总量,通过 Questions (客户的查询数目)状态值每秒内的变化量来近似表示,所以有:

QPS = mysqladmin 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

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

2. 线程状态

threads_running:当前正处于激活状态的线程个数

threads_connected:当前连接的线程的个数

3. 流量状态

Bytes_received/s:平均每秒从所有客户端接收到的字节数,单位 KB

Bytes_sent/s:平均每秒发送给所有客户端的字节数,单位 KB

4. innodb 文件读写次数

innodb_data_reads:innodb 平均每秒从文件中读取的次数

innodb_data_writes:innodb 平均每秒从文件中写入的次数

innodb_data_fsyncs:innodb 平均每秒进行 fsync()操作的次数

5. innodb 读写量

innodb_data_read:innodb 平均每秒钟读取的数据量,单位为 KB

innodb_data_written:innodb 平均每秒钟写入的数据量,单位为 KB

6. innodb 缓冲池状态

innodb_buffer_pool_reads: 平均每秒从物理磁盘读取页的次数

innodb_buffer_pool_read_requests: 平均每秒从 innodb 缓冲池的读次数(逻辑读请求数)

innodb_buffer_pool_write_requests: 平均每秒向 innodb 缓冲池的写次数

innodb_buffer_pool_pages_dirty: 平均每秒 innodb 缓存池中脏页的数目

innodb_buffer_pool_pages_flushed: 平均每秒 innodb 缓存池中刷新页请求的数目

innodb 缓冲池的读命中率
innodb_buffer_read_hit_ratio = (1 – Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100

Innodb 缓冲池的利用率

Innodb_buffer_usage =  (1 – Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_total) * 100

7. innodb 日志

innodb_os_log_fsyncs: 平均每秒向日志文件完成的 fsync()写数量

innodb_os_log_written: 平均每秒写入日志文件的字节数

innodb_log_writes: 平均每秒向日志文件的物理写次数

innodb_log_write_requests: 平均每秒日志写请求数

8. innodb 行

innodb_rows_deleted: 平均每秒从 innodb 表删除的行数

innodb_rows_inserted: 平均每秒从 innodb 表插入的行数

innodb_rows_read: 平均每秒从 innodb 表读取的行数

innodb_rows_updated: 平均每秒从 innodb 表更新的行数

innodb_row_lock_waits:  一行锁定必须等待的时间数

innodb_row_lock_time: 行锁定花费的总时间,单位毫秒

innodb_row_lock_time_avg: 行锁定的平均时间,单位毫秒

9. MyISAM 读写次数

key_read_requests: MyISAM 平均每秒钟从缓冲池中的读取次数

Key_write_requests: MyISAM 平均每秒钟从缓冲池中的写入次数

key_reads : MyISAM 平均每秒钟从硬盘上读取的次数

key_writes : MyISAM 平均每秒钟从硬盘上写入的次数

10. MyISAM 缓冲池

MyISAM 平均每秒 key buffer 利用率

Key_usage_ratio =Key_blocks_used/(Key_blocks_used+Key_blocks_unused)*100

MyISAM 平均每秒 key buffer 读命中率

Key_read_hit_ratio=(1-Key_reads/Key_read_requests)*100

MyISAM 平均每秒 key buffer 写命中率

Key_write_hit_ratio =(1-Key_writes/Key_write_requests)*100

11. 临时表

Created_tmp_disk_tables: 服务器执行语句时在硬盘上自动创建的临时表的数量

Created_tmp_tables: 服务器执行语句时自动创建的内存中的临时表的数量

Created_tmp_disk_tables/Created_tmp_tables 比值最好不要超过 10%,如果 Created_tmp_tables 值比较大,可能是排序句子过多或者连接句子不够优化

12. 其他

slow_queries: 执行时间超过 long_query_time 秒的查询的个数(重要)

sort_rows: 已经排序的行数

open_files: 打开的文件的数目

open_tables: 当前打开的表的数量

select_scan: 对第一个表进行完全扫描的联接的数量

此外,还有一些性能指标不能通过 mysqladmin extended-status 或 show global status 直接得到,但是十分重要。

13. response time: 响应时间

Percona 提供了 tcprstat 工具统计响应时间,此功能默认是关闭的,可以通过设置参数 query_response_time_stats= 1 打开这个功能。

有两种方法查看响应时间:

(1)通过命令 SHOW QUERY_RESPONSE_TIME 查看响应时间统计;

(2)通过 INFORMATION_SCHEMA 里面的表 QUERY_RESPONSE_TIME 来查看。

http://www.orczhou.com/index.php/2011/09/thanks-percona-response-time-distribution/comment-page-1/(参考文章)

14. Slave delay: 备库延迟

可以在 slave 节点上执行 show slave status\G 命令,Seconds_Behind_Master 项的值即为 slave 当前的延时量,单位秒。

详解 MySQL 性能指标及计算方法

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计3635字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中