MySQL

MySQL监控

2019-04-02  本文已影响88人  AI贺贺

数据库管理的关键是要能提前发现问题,而要想提前发现问题,必须要有监控系统,开源的系统有

不过这些系统,一般都是直接使用,重点是监控了什么指标,下面聚焦下具体是什么指标,而不是什么用了什么监控软件。

MySQL常用监控指标

非功能指标:

功能指标:

QPS=(Queries1 - Queries2)/时间间隔

show global status where variable_name in ('Queries','uptime');
// 第一次查询
Queries 3532976857
Uptime  32769425
// 第二次查询
Queries 3532977031
Uptime  32769452

QPS = ( 3532977031 -  3532976857 ) / (32769452 - 32769425) = 6.44

TPS=sum(删除,增加,更新)/时间间隔

show global status where variable_name in ('com_insert','com_update','com_delete','uptime');

Com_delete  1721
Com_insert  3404633923
Com_update  30505256
Uptime  32769668

Com_delete  1721
Com_insert  3404633970
Com_update  30505314
Uptime  32769706

TPS = ((3404633970 - 3404633923) + (30505314 - 30505256 ) ) / (32769706 - 32769668) = 2.76

并发数,一般并发数越多,负载越大, 最大连接数为配置的max_connection变量

show global status where variable_name in ('Threads_running','Threads_connected');

Threads_connected   5
Threads_running 3

InnoDB缓存命中率,缓存命中就可以省去读磁盘

(innodb_buffer_pool_read_requests - innodb_buffer_pool_reads) / innodb_buffer_pool_read_requests

innodb_buffer_pool_read_requests:从缓存池中读取的次数

Innodb_buffer_pool_reads: 表示从物理磁盘读取的次数

show global status where variable_name like 'innodb_buffer_pool_read%'
Innodb_buffer_pool_read_requests    122914434867
Innodb_buffer_pool_reads    47710383

命中率 = (122914434867 - 47710383) / 122914434867 = 0.99

非功能指标

可用性,周期的连接服务器执行select @@version

阻塞,多个线程对同一个资源加排它锁导致的

死锁:

慢查询:通过日志监控,也可以查information_schema.processlist 表

主从延迟

show slave status;

参考

上一篇 下一篇

猜你喜欢

热点阅读