题目
简述数据库监控的主要目的和常用监控指标
信息
- 类型:问答
- 难度:⭐
考点
监控目的,核心监控指标,基础概念
快速回答
数据库监控的主要目的是确保系统稳定运行、快速定位问题并优化性能。常用监控指标包括:
- 性能指标:查询响应时间、QPS(每秒查询数)、TPS(每秒事务数)
- 资源使用:CPU利用率、内存占用、磁盘I/O
- 连接状态:当前连接数、最大连接数、连接等待数
- 存储状态:表空间使用率、日志文件大小
- 错误日志:慢查询记录、死锁发生次数
一、监控核心目的
1. 保障可用性:实时检测数据库服务状态(如连接是否正常),避免服务中断。
2. 性能优化:识别慢查询、资源瓶颈(如CPU过载),指导调优。
3. 故障预警:通过阈值告警(如磁盘使用率>90%)提前干预,防止宕机。
4. 容量规划:分析历史增长趋势(如数据量月增10%),合理扩容。
二、关键监控指标详解
| 类别 | 指标 | 说明 | 示例值 |
|---|---|---|---|
| 性能 | 查询响应时间 | SQL平均执行耗时 | < 100ms |
| QPS | 每秒查询量 | 1200次/秒 | |
| TPS | 每秒事务量 | 300次/秒 | |
| 资源 | CPU利用率 | 数据库进程CPU占用 | 70% |
| 内存使用率 | 缓冲池命中率 | 98% | |
| 磁盘I/O | 读写延迟 | 读5ms/写10ms | |
| 连接 | 活动连接数 | 当前活跃会话 | 85/100 |
| 存储 | 表空间使用率 | 业务表空间占比 | 75% |
| 错误 | 慢查询数量 | 执行超阈值的SQL数 | 5次/分钟 |
三、最佳实践
- 工具选择:MySQL可用
SHOW STATUS命令或Prometheus+Grafana - 阈值设置:根据业务设定合理告警(如连接数 > 80%时触发)
- 监控频率:核心指标秒级监控,次要指标分钟级
- 日志关联:将慢查询日志与监控指标结合分析(例:高CPU时排查慢SQL)
四、常见错误
- 指标过载:监控非关键指标导致告警疲劳
- 忽略趋势:仅关注瞬时值,未分析历史趋势(如磁盘每日增长1%)
- 缺乏根因分析:收到CPU告警后未关联查询日志定位具体SQL
五、扩展知识
SQL示例(MySQL获取状态):SHOW GLOBAL STATUS LIKE 'Threads_connected'; -- 当前连接数
SHOW GLOBAL VARIABLES LIKE 'max_connections'; -- 最大连接数
原理说明:数据库通过内部计数器记录指标(如Innodb_buffer_pool_read_requests),监控工具定期采集这些值计算变化率。