面试题答案
一键面试关键指标
- 数据库连接指标
- 活跃连接数:反映当前正在使用的数据库连接数量,过高可能表明系统负载过重或连接管理不当。
- 最大连接数:数据库允许的最大并发连接数,监控其与活跃连接数的比例,可提前发现潜在的连接耗尽问题。
- 性能指标
- 查询响应时间:衡量数据库处理查询请求的速度,较慢的响应时间可能暗示查询性能不佳或硬件资源瓶颈。
- 吞吐量:如每秒处理的查询数(QPS),反映数据库整体处理能力。
- 资源使用指标
- CPU使用率:数据库进程对CPU资源的占用情况,过高可能导致查询处理速度下降。
- 内存使用率:MariaDB使用的内存量,包括缓存、排序等操作占用的内存,不合理的内存使用可能影响性能。
- 磁盘I/O:读取和写入磁盘的速率,高I/O可能导致查询延迟,尤其是在磁盘繁忙时。
- 复制指标(如果使用主从复制)
- 复制延迟:从库与主库之间数据同步的延迟时间,过大的延迟可能影响数据一致性。
- 复制状态:是否正常运行,有无错误发生。
获取指标数据的方法
- 系统命令
- top:用于查看系统整体的CPU和内存使用情况。通过
top
命令,可查看mysqld
进程(MariaDB服务进程)的CPU和内存占用比例。例如,在top
界面中,找到mysqld
进程对应的行,%CPU
列显示CPU使用率,%MEM
列显示内存使用率。 - iostat:用于监控磁盘I/O情况。执行
sudo iostat -x
命令,可查看详细的磁盘I/O统计信息,包括每秒的读/写请求数(r/s
、w/s
)、每秒读/写的数据量(rkB/s
、wkB/s
)等。
- top:用于查看系统整体的CPU和内存使用情况。通过
- MariaDB自带工具
- SHOW STATUS:可获取大量数据库运行状态信息。例如,要获取活跃连接数,执行
SHOW STATUS LIKE 'Threads_connected';
;获取最大连接数执行SHOW VARIABLES LIKE 'max_connections';
;获取查询响应时间相关指标,如SHOW STATUS LIKE 'Qcache_hits';
(查询缓存命中次数,可辅助分析查询性能)。 - SHOW GLOBAL STATUS:用于查看全局状态变量,同样可获取类似
SHOW STATUS
的众多指标,部分指标在全局层面更具参考性。 - SHOW SLAVE STATUS:在主从复制环境中,用于查看从库复制状态,可获取复制延迟(
Seconds_Behind_Master
)等复制相关指标。
- SHOW STATUS:可获取大量数据库运行状态信息。例如,要获取活跃连接数,执行
- 第三方工具
- Prometheus + Grafana:Prometheus通过其客户端exporter采集MariaDB指标数据。安装
mysqld_exporter
后,配置它连接到MariaDB实例,即可采集如查询响应时间、活跃连接数、吞吐量等丰富指标。Grafana则用于可视化这些数据,通过配置数据源为Prometheus,可创建美观直观的监控面板展示各种指标。 - Zabbix:Zabbix Agent安装在MariaDB服务器上,通过自定义脚本或模板采集数据库指标。例如,编写脚本执行
SHOW STATUS
命令并解析结果,将指标数据传递给Zabbix Server,在Zabbix前端界面进行展示和告警设置。
- Prometheus + Grafana:Prometheus通过其客户端exporter采集MariaDB指标数据。安装