常见的简单的mysql监控_MySQL 常见的监控指标

功能类指标

1、可用性:数据库是否可正常对外提供服务

mysqladmin -uroot -proot123 -hlocalhost ping

2、阻塞:当前是否有阻塞的会话

阻塞时由于多个并发的线程要对同一个资源加排它锁造成的,后面的线程只有等到前面的线程释放了锁之后才能继续执行。

MySQL版本小于 8.0时监控阻塞的方法如下:当阻塞超过30秒后查询出来

select b.trx_mysql_thread_id as '被阻塞线程', b.trx_query as '被阻塞SQL', c.trx_mysql_thread_id as '阻塞线程', c.trx_query as '阻塞SQL', (unix_timestamp()-unix_timestamp(c.trx_started)) as '阻塞时间' from information_schema.innodb_lock_waits a join information_schema.innodb_trx b on a.requesting_trx_id=b.trx_id join information_schema.innodb_trx c on a.blocking_trx_id=c.trx_id where (unix_timestamp()-unix_timestamp(c.trx_started)) > 30;

MySQL的版本是 8.0时监控阻塞方法如下:

select waiting_pid as '被阻塞的线程', waiting_query as '被阻塞的SQL', blocking_pid as '阻塞线程', blocking_query as '阻塞SQL', wait_age as '阻 塞时间', sql_kill_blocking_query as '建议操作' from sys.innodb_lock_waits;

3、死锁:当前事物是否产生了死锁

死锁是两个并发执行的事物,相互之间锁住了对方所需要的资源。死锁不怎么影响数据库性能,但会影响业务。

查看存储引擎状态查看最近一次发生的死锁:

show engine innodb status\G

使用pt工具把发生的死锁存入表当中:(推荐使用这一种方式)

7c6060e9950174b880787ab1839ca5aa.png

把死锁内容输出到错误日志当中

set persist innodb_print_all_deadlocks=on;

4、慢查询:实时慢查询监控

实时监控慢SQL

select * from information_schema.processlist where time>60 and command <> 'sleep' and user <> 'event_scheduler';

5、主从延时:数据库主从延迟时间

第一种方法:

在主库建立一张表,只含有一个时间字段,主库定时插入时间,主库从库进行时间比较来监控主从延迟

第二种方法:

9223efc24f161d7d43890b750299da05.png

6、主从状态:数据库主从复制链路是否正常

show slave status\G

性能类指标

1、QPS:数据库每秒处理的请求数量

show global status like 'Com_%';

Queries的值是Com_%值的总和

show global status where variable_name in ('Queries','uptime');

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

2、TPS:数据库每秒钟处理的事物数量

show global status where variable_name in ('Com_insert','Com_delete','Com_update');

Tc ≈ Com_insert + Com_delete + Com_update

TPS ≈ (Tc2 - Tc1) / time2 - time1)

3、并发数:数据库实例当前并行处理的会话数量

show global status like 'Threads_running';

4、连接数:连接到数据库会话的数量

show global status like 'Threads_connected';

报警阈值:Threads_connected / max_connections > 0.8

5、缓存命中率:InnoDB的缓存命中率

innodb_buffer_pool_read_requests : 缓存池中读取总次数

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

缓存命中率 = ( innodb_buffer_pool_read_requests - innodb_buffer_pool_reads ) / innodb_buffer_pool_read_requests

show global status like 'innodb_buffer_pool_read_requests';

show global status like 'innodb_buffer_pool_reads';

在一个繁忙的业务系统中,缓存命中率是不应该小于95%的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值