mysql 监控

近期人员变动以及业务调整,使我能够接触到mysql服务器,并且版本升级到mysql8,这样对于线上的使用情况需要做一些监控,整理了一些常用的监控命令,哪里说得不对,还望大佬们多多指正。

一、命令总览

  1. SHOW STATUS:查看系统运行的实时状态,便于dba查看mysql当前运行的状态,做出相应优化,动态的,不可认为修改,只能系统自动update。(例:SHOW STATUS LIKE '关键字';)
  2. SHOW VARIABLES查看系统参数,系统默认设置或者dba调整优化后的参数,静态的。可以通过set或者修改my.cnf配置文件修改。(例:SHOW VARIABLES LIKE '关键字';)

二、命令实操

1、查看当前连接数:SHOW STATUS LIKE 'Thread_%';

  • Threads_cached:被缓存的线程的个数
  • Threads_running:处于激活状态的线程的个数
  • Threads_connected:当前连接的线程的个数
  • Threads_created:总共被创建的线程的个数

2、缓存命中率:TCH = (1 - ( Threads_created / Connections ) ) * 100,如果TCH数小于90%,说明命中率不高,创建连接耗费了不少时间,可以考虑加大 thread_cache_size 变量值来增大Threads_cached的数量。

  • Connections = SHOW GLOBAL STATUS LIKE 'Connections';

3、线程缓存大小:show global variables like 'thread_cache_size';

  • 如果是短连接,可以适当设大一点。因为短连接往往需要不停地创建和销毁。如果设大一点,重新创建和销毁的数量会小一些,对性能提升有较大的作用。
  • 如果是长连接,如果是长连接,可以适当设置小一点。
  • 物理内存设置规则:可以大致根据物理内存来设置,1G-->8、2G-->16、3G-->32、4G-->64
  • 设置方法:mysql> set global thread_cache_size = 16或者编辑/etc/my.cnf  更改/添加 thread_concurrency = 16

4、mysql查询次数:

  • SHOW GLOBAL STATUS LIKE 'Qcache_hits';   查询缓存命中次数
  • SHOW GLOBAL STATUS LIKE 'Com_select';    总的查询语句量
  • SHOW GLOBAL STATUS LIKE 'Com_insert';    执行插入语句量
  • SHOW GLOBAL STATUS LIKE 'Com_update';  执行更新语句量
  • SHOW GLOBAL STATUS LIKE 'Com_delete';   执行删除语句量
  • SHOW GLOBAL STATUS LIKE 'Com_replace'; 执行字符串替换语句量
  • SHOW GLOBAL STATUS LIKE 'Uptime';          本次启动服务到现在执行的时长

5、QPS每秒查询量:

  • 基于Questions(Questions表示发送给服务器的查询数量)计算QPS:QPS = Questions / Uptime,Questions=SHOW GLOBAL STATUS LIKE 'Questions';
  • 基于com_*(Com_select表示查询语句执行数量)计算QPS:QPS = Com_select / Uptime;
  • 使用Questions进行计算QPS时,人为拉高了计算结果。相对来说,使用Com_select这种计算方式更符合实际一些。

6、TPS每秒事务量:TPS = (Com_commit + Com_rollback) / Uptime

  • Com_commit:SHOW GLOBAL STATUS LIKE 'Com_commit';
  • Com_rollback:SHOW GLOBAL STATUS LIKE 'Com_rollback';

7、R/W Ratio读写比:优化数据库的重要依据,读的多优化读,写的多优化写

  • R/W = (Com_select + Qcache_hits) / (Com_insert + Com_update + Com_delete + Com_replace) * 100

8、慢查询:SQPM = Slow_queries/(Uptime/60)    S/Q = Slow_queries/Questions

  • SHOW VARIABLES LIKE "long_query_time";     查看慢查询时间
  • SHOW STATUS LIKE "%slow_queries%";         查看慢查询配置情况
  • SHOW VARIABLES LIKE "%slow%";                  查看慢查询日志路径
  • set global slow_query_log = ON;               开启慢日志
  • set global long_query_time = 2;                设置慢查询时间 2s
  • set global slow_query_log_file='....log';    设置慢查询日志路径
  • set global log_queries_not_using_indexes = ON;    设置无索引的查询,设置后没有使用索引的查询也会被认为是慢查询
  • SHOW GLOBAL STATUS LIKE 'Slow_queries';   慢速查询

9、无索引join查询 FJPM = Select_full_join / (Uptime / 60) 没有使用索引而造成的全表扫描的join,需要优化索引。

  • SHOW GLOBAL STATUS LIKE 'Select_full_join';  

10、buffer命中率 (1 - Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100,目标是95%-99%

  • SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_reads';
  • SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read_requests';

11、Table Cache表缓存:table_cache应该大于Open_tables小于Opened_tables

  • SHOW GLOBAL STATUS LIKE 'Open_tables';
  • SHOW GLOBAL STATUS LIKE 'Opened_tables';
  • SHOW GLOBAL STATUS LIKE 'table_cache';

更多参数详解参照https://www.cnblogs.com/zengkefu/p/5634841.html

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值