我是靠谱客的博主 老迟到枕头,最近开发中收集的这篇文章主要介绍数据库可用行与性能监控,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

可用行:

1.监控数据库是否可以连接

  方法:

      mysqladmin -umonitor_user -p -h ping

     telnet ip db_port

2.监控数据库是否可以读写

   方法:

      检查数据库read_only参数是否为off.

      建立监控表对表中数据进行操作

     连接后可以执行 select @@version

3.监控数据库的连接数

  方法:

      show variables like 'max_connections'

     show global status like 'Threads_connected'

    Threads_connected / max_connections>0.8 就需要报警

性能监控:

1.监控数据库并发请求数量

   show global status like 'Thread_running'

  如何监控Innodb的阻塞:

   从mysql性能字典表,innodb_lock_waits 是锁信息,innodb_trx是事务信息,有两条记录,需要放到一行中,因此,需要关联2次。 

select b.trx_mysql_thread_id as ‘被阻塞线程’, 
b.trx_query as ‘被阻塞SQL’, 
b.trx_mysql_thread_id as ‘阻塞线程’, 
b.trx_query as ‘阻塞SQL’, 
(UNIX_TIMESTAMP() - UNIX_TIMESTAMP(b.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))>60; 

设置全局锁的超时时间:
 set global innodb_lock_wait_timeout=180;

查看线程相互阻塞的方法: 

show engine innodb status G 查看详细事务内容 
SELECT b.,a. FROM information_schema.INNODB_TRX a,information_schema.PROCESSLIST b WHERE a.trx_mysql_thread_id=b.ID AND a.trx_state=’RUNNING’ ; 

 

最后

以上就是老迟到枕头为你收集整理的数据库可用行与性能监控的全部内容,希望文章能够帮你解决数据库可用行与性能监控所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部