Linux 上监控 Informix 性能的可落地方案
一 监控体系与工具选型
- 建议采用“系统层 + 数据库层 + 可视化告警层”三层架构:
- 系统层:使用 top、vmstat、iostat、sar、netstat、nmon、Glances 观察 CPU、内存、I/O、网络与整体负载,作为数据库性能的根因定位基线。
- 数据库层:使用 onstat、onmode 获取引擎内部线程、会话、锁、缓冲池、日志与检查点等运行状态;配合 SQL 执行计划分析(set explain on) 定位慢 SQL。
- 可视化告警层:使用 Zabbix、Prometheus + Grafana、IMMX(IBM Monitoring and Management Extension) 实现指标采集、历史趋势、阈值告警与统一看板。
二 关键指标与常用命令
- 下表给出高价值监控项、常用命令与典型阈值参考(阈值需结合业务基线调优):
| 维度 |
关键指标 |
常用命令或视图 |
典型阈值或关注点 |
| 实例与线程 |
会话数、长事务、锁等待 |
onstat -u/-g ses/-g sql/-k |
活跃会话突增、长事务/锁等待增多需排查阻塞与逻辑 |
| 缓冲池与缓存命中 |
缓冲池命中率 |
onstat -p |
目标是尽可能高;命中率下降常伴随物理读上升 |
| 磁盘与 I/O |
读写吞吐、IOPS、await、svctm |
iostat -x 1 |
await/svctm 持续升高可能预示存储瓶颈 |
| 日志与检查点 |
日志使用率、日志切换频率、检查点时长 |
onstat -l/-d |
日志接近满、频繁切换或检查点过慢需关注 |
| 内存与交换 |
内存使用、swap 活动 |
vmstat 1、top |
频繁 swap 常导致性能劣化 |
| CPU 与负载 |
CPU 占用、系统负载 |
top、vmstat 1、sar -u 1 |
持续高 CPU 或负载远高于 CPU 核数需定位热点 |
| 网络 |
连接状态、重传率 |
netstat -an、sar -n DEV |
连接数异常、重传率高可能指向网络问题 |
| SQL 性能 |
执行计划、成本、行数估计 |
set explain on、onstat -g sql |
成本偏高、行数估计偏差大时优化 SQL/索引 |
- 说明:
- onstat 输出字段含义可结合官方文档解读;iostat 的 await/svctm 用于识别 I/O 延迟;sar 可回放历史负载用于容量与瓶颈分析。
三 快速上手的命令行巡检
- 实时资源与负载:
- top(整体 CPU/内存与热点进程)
- vmstat 1(系统整体资源与 swap)
- iostat -x 1(磁盘 I/O 延迟与吞吐)
- sar -u 1(CPU 利用率,配合历史回放)
- netstat -an(连接与端口状态)
- Informix 引擎状态:
- onstat -p(缓冲池命中率、页读写)
- onstat -u/-g ses/-g sql(会话、锁、正在执行的 SQL)
- onstat -l/-d(逻辑/物理日志与空间使用、检查点信息)
- onstat -k(锁等待链,定位阻塞源头)
- SQL 性能分析:
- 在会话或 SQL 前执行:set explain on,执行后查看生成的 .out 计划文件,关注扫描方式、成本与行数估计。
四 可视化与告警落地
- Zabbix:
- 在目标主机部署 Zabbix Agent,通过 UserParameter 调用脚本定期执行 onstat 并输出 JSON/键值对;在 Zabbix 配置监控项、触发器与动作(邮件、短信、企业微信/钉钉 Webhook)。
- Prometheus + Grafana:
- 部署 Prometheus 采集暴露的 Informix/Prometheus Exporter 指标;在 Grafana 中创建仪表盘并配置阈值告警(如 CPU 使用率超过 80% 触发),通知渠道可选 Email、Slack、PagerDuty 等。
- IBM 工具:
- 使用 IMMX 或 Informix Performance Monitor(IPM)/Informix Enterprise Monitor(IEM) 获取企业级监控、历史分析与报表能力,适合集中化运维场景。
五 实践建议与排障流程
- 建立“基线—告警—处置”闭环:先采集 1–2 周 数据建立性能基线;为关键指标设置分层阈值(注意、严重);告警需附带诊断命令与定位路径。
- 优先定位“最贵”问题:先看 I/O 等待与日志瓶颈,再看 锁与长事务,最后分析 SQL 计划与索引。
- 例行巡检清单:
- 每日:检查 onstat -p 命中率、onstat -l 日志与空间、iostat -x 延迟与吞吐、vmstat/sar 资源趋势。
- 每周:抽样 set explain on 分析 Top SQL,复核索引与统计信息;巡检异常会话与锁等待。
- 每月:复盘告警与故障单,更新阈值与容量规划。