mysql性能监控最佳实践(监控产品及监控指标)
2018-08-15 21:18
417 查看
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 | 数据库物理读 4000 的次数 | 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脚本 3、阈值,趋势 有些建龙指标有阈值,例如io的svtime 有些需要看趋势,例如io的tps阅读更多
相关文章推荐
- Prometheus监控的最佳实践——关于监控的3项关键指标
- Prometheus监控的最佳实践——关于监控的3项关键指标
- Prometheus监控的最佳实践——关于监控的3项关键指标
- MySQL 的 20+ 条最佳实践
- 性能指标参考 - 解决方案最佳实践
- Hadoop+Spark+MongoDB+MySQL+C#大数据开发项目最佳实践
- Kubernetes集群的监控报警策略最佳实践
- 【译】适合dba和开发者的mysql最佳实践
- MySQL 索引最佳实践之问题反馈
- MySQL性能优化的21个最佳实践 和 mysql使用索引
- 京东前端:PhantomJS 和NodeJS在网站前端监控平台的最佳实践
- MySQL磁盘复制技术--DRBD:优缺点比较、注意事项以及最佳实践
- 21天实战人工智能系列:人工智能产品经理最佳实践(2)
- 数据库安全监控最佳实践:使用DAM工具
- MySQL性能优化的21个最佳实践
- MySQL性能优化的21个最佳实践
- 12条用于Linux的MySQL/MariaDB安全最佳实践
- 产品环境中 Go 语言的最佳实践
- 【Rainbond最佳实践】Spring Boot框架配置MySQL
- MySQL 的 20+ 条最佳实践