Ubuntu 上监控 Informix 数据库性能
一 监控体系总览
- 使用 Informix 自带工具实时查看实例与会话状态:如 onstat(会话、锁、缓存、I/O、数据库/服务状态)、onmode(切换运行模式、查看状态)。
- 结合 Linux 系统工具排查资源瓶颈:如 top/htop(进程 CPU/内存)、vmstat(内存与进程)、iostat(磁盘 I/O)、sar/dstat(历史与多维资源)。
- 建立 可视化与告警:如 Prometheus + Grafana、Zabbix、Nagios,实现指标采集、仪表盘与阈值告警。
- 针对 SQL 性能做专项分析:使用 SET EXPLAIN 获取查询计划,识别全表扫描、连接方式(Nested Loop/Hash Join)等瓶颈。
二 Informix 内置命令速查
- 会话与活动:
- 查看活动会话与事务:onstat -g act
- 查看数据库状态:onstat -g db
- 查看服务器状态:onstat -g srv
- 锁与等待:
- 缓存与 I/O:
- 运行模式与状态:
- 查看/切换实例模式:onmode -q(查询状态)、必要时用 onmode -ky/-u/-m 等进行模式切换(谨慎操作)
- 日志与备份:
- 检查逻辑/物理日志与空间:onstat -l
- 备份状态与历史:onbar -l(需已配置 BAR)
- 使用提示:以 informix 用户或具备相应权限的账户执行,输出字段含义可结合官方文档解读。
三 Linux 系统资源监控
- 安装常用工具:
- 交互式进程监控:sudo apt install htop
- 资源统计套件:sudo apt install sysstat
- 多维资源监控:sudo apt install dstat
- 常用命令:
- 实时资源:top/htop
- 虚拟内存与 CPU:vmstat 1 5(每秒采样,共 5 次)
- 磁盘 I/O:iostat -x 1(含 await、svctm、util 等)
- CPU/磁盘历史:sar -u 1、sar -d 1
- 综合资源:dstat -ta 6
- 数据持久化:sysstat 会将历史数据写入 /var/log/sysstat/ 或 /var/log/sa/,便于回溯分析。
四 可视化与告警方案
- Prometheus + Grafana:
- 在 Ubuntu 上安装 Prometheus 与 Grafana,添加数据源后构建 Informix 仪表盘(需配合采集器/导出器或脚本暴露指标)。
- 访问 http://<服务器IP>:3000,默认账号 admin/admin。
- Zabbix:
- 通过 Zabbix Agent 或外部脚本采集 Informix 指标,配置触发器实现阈值告警与可视化。
- Nagios:
- 使用插件或脚本对实例存活、会话数、锁等待、磁盘空间等进行监控与告警。
五 SQL 性能诊断与优化
- 使用 SET EXPLAIN 查看执行计划:
- 开启并输出到默认文件:SET EXPLAIN ON;
- 仅生成计划不执行:SET EXPLAIN ON AVOID_EXECUTE;
- 指定输出文件:SET EXPLAIN FILE TO ‘/tmp/explain.out’;
- 关注要点:
- 访问路径:顺序扫描、索引扫描、仅键索引扫描、自动索引扫描 等。
- 连接方式:嵌套循环连接(通常配合索引)、哈希连接(大数据量或无索引时更优)。
- 结合计划中的成本与行数估计,评估是否需要 索引、统计信息更新、SQL 改写 或 重组表/索引。