监控mysql的队列,mysql性能监控最佳实践(监控产品及监控指标)

mysql性能监控最佳实践(监控产品及监控指标)

1、监控什么内容

1、os层面

空间监控df -h ,防止文件系统空间满造成数据库hang住

性能cpu监控

vmstat

r队列,这个队列需要小于cpu核数,最大不要超过4倍???

top load average队列数量,同上???

top中sys cpu占比小于5%,iowait占比小于5%,user占比小于70%

top H线程占cpu占比,不要出现70%+的线程

2、内存

vmstat中出现swap in out ,free至少2G以上

3、io

iostat -x 中 r/s w/s

svctm<=6ms

%util<80%

4、网络监控

sar监控中,网络带宽不需要达到90%,一般1000Mbit/s 带宽足够使用,除了备份等场景

5、数据库

真实负载监控

| Innodb_rows_deleted | 99493 |

| Innodb_rows_inserted | 1376624 |

| Innodb_rows_read | 12895545 |

| Innodb_rows_updated | 2720746 |

| Queries | 8932356 |:qps,所有查询语句(i+d+u+s)的数量,如执行一个存储过程,会把存储过程中的执行sql数量也包括。questions是一个存储过程算一个,不管存过程中有多少语句。

tps:

显示的tps:

| Com_commit | 338336 |

| Com_rollback | 1057 |

隐式tps:

| Handler_commit | 12519502 |

| Handler_rollback | 2114 |

IO相关

物理读相关:

| Innodb_buffer_pool_read_requests| 66101630 |内存读的总次数

| Innodb_buffer_pool_reads | 115801 | 数据库物理读的次数

| Innodb_pages_read | 142404 | 数据库物理读的页数

| Handler_read_rnd_next | 2112621 |很高表示全表扫描的征兆

物理写相关:

| Innodb_buffer_pool_pages_flushed | 232223 |从buffer pool 中刷新页的数量,即写的总页数

| Innodb_buffer_pool_write_requests | 16157929 |写入的次数

| Innodb_dblwr_writes | 0 |:double write 写入的次数

| Innodb_dblwr_pages_written | 0 |:dbwr 写入的页数

| Innodb_log_writes | 131755 |:日志的写入次数

关注pending(读不动,写不动---IO有问题)的数量:

| Innodb_data_pending_reads | 0 |读挂起

| Innodb_data_pending_writes | 0 |写挂起

| Innodb_os_log_pending_writes | 0 |日志挂起

内存相关

| Innodb_buffer_pool_wait_free | 0 |:因为内存短缺,导致物理读不能获

取到内存,为0 表示内存中总有可用页。

| Innodb_buffer_pool_pages_total | 65536 |:innodb 内存总量

| Innodb_buffer_pool_pages_dirty | 0 |:脏页总量,脏页暴增,可能是系统中有异常的dml

4、连接相关

| Connections | 48 |连接累计值,不管失败或成功,连接总次数。不关注。

| Threads_created | 44 |线程连接建立的次数

| Threads_connected| 1 |当前打开的连接数量,正在连接的数量。

| Connection_errors_max_connections | 0 |因为连接数达到最大而不能连接所

产生的错误次数。>0 表示连接数超了。

5、用户空间相关

| Created_tmp_disk_tables | 0 |:当这个值很大,表示需要增加

tmp_table_size 和max_heap_table_size 的值(在内存中的临时表)。

select 子查询join 子查询,需要把两个子查询求出来,再join,子查询

需要放在内部临时表里,如果内部临时表大小不够用,就会发生磁盘临时表。

| Sort_merge_passes | 0 |sort 用户空间太小发生磁盘排序的数量。

| Binlog_cache_disk_use | 0 |:binlog 用户空间太小发生使用磁盘空间的数量。

6、锁相关

| Innodb_row_lock_waits | 89877 |

| Innodb_row_lock_time | 37340748 |

| Table_locks_waited | 0 |产生表锁等待的数量

7、慢查询相关:

| Slow_queries | 508 |:慢查询执行次数

慢查询日志的解读

对慢查询日志进行tail -f式的解读

8、产生的日志量相关:——产生的redo数量

| Innodb_os_log_written | 1255217664 |redo log 产生的量,字节数

show master status;隔段时间监控的差值除以时间间隔得到每秒产生binlog 日志量。

9、网络相关

| Bytes_received | 372184964 |

| Bytes_sent | 1996745853 |

10、全表扫描

| Select_full_join | 0 |表关联时,由于表上没有索引而发生的表扫描的次数。

| Select_scan | 39 |use 数据库或者show status 等时,会扫描小的系统表,做了全表扫描,所以有时候不准,容易产生误导,select 产生全表扫描的次数。

使用Handler_read_rnd_next 值看全表扫描。

| Handler_read_rnd_next | 2113042 |如果这个值很高,表示你正在做很多表扫描,应该是没有使用正确或者高效的索引。

2、监控工具

PT

ZABBIX

SHELL脚本

zabbix的安装和配置

3、阈值,趋势

有些建龙指标有阈值,例如io的svtime

有些需要看趋势,例如io的tps

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值