Linux 上监控 Informix 性能的实用方案
一 监控体系总览
- 使用 Informix 自带工具 获取数据库内部运行状态:如 onstat、onmode、OAT(OpenAdmin Tool),覆盖会话、锁、缓冲池、I/O、CPU/内存等维度。
- 结合 Linux 系统工具 观察主机资源:如 top、vmstat、iostat、sar、netstat,用于定位 CPU、内存、磁盘、网络等瓶颈。
- 建设 集中监控与告警:如 Zabbix、Nagios、Prometheus、NetData、IMMX,实现可视化、历史趋势与阈值告警。
- 辅以 日志与 SQL 分析:定期检查数据库日志,查询 sysmaster 系统表/视图(如锁、缓冲池)定位问题根因。
二 Informix 内置关键命令与用法
- 会话与锁
- 查看用户与会话:onstat -u
- 查看当前锁:onstat -k;或查询系统表:SELECT * FROM sysmaster:syslocks;
- 内存与缓冲池
- 缓冲池命中与使用情况:onstat -p
- 内存概要:onstat -g mem
- I/O 与磁盘队列
- I/O 队列与磁盘瓶颈:onstat -g ioq
- CPU 与线程
- 运行模式与维护
- 切换/查询运行模式、日志切换、内存管理等:onmode
- 图形化管理
- Web 管理监控:OAT(OpenAdmin Tool),直观查看性能与配置
三 Linux 主机与网络监控要点
- CPU 与整体负载:top;系统层面统计:vmstat 1
- 磁盘 I/O 与响应:iostat -x 1(关注 await、r/s、w/s、util)
- 历史与趋势:sar -u 1(CPU)、其他 sar 项用于容量与瓶颈回溯
- 网络状态:netstat -an(连接、端口、状态分布)
- 一体化与轻量可视化:nmon、Glances、NetData(快速巡检与看板)
四 集中监控与告警方案
- 企业级与开源自建
- Zabbix:通过自定义脚本/代理采集 onstat 输出与系统指标,配置触发器与可视化大盘。
- Nagios:以插件方式监控关键阈值(如会话数、锁等待、I/O 利用率),实现告警联动。
- Prometheus:采集系统/应用指标,结合 Grafana 做趋势分析与告警规则。
- NetData:即插即用,适合快速上线主机与应用层监控。
- IBM 生态
- IMMX(IBM Monitoring and Management Extension):面向 IBM 软件栈的监控与报表能力,可与 Informix 集成。
五 快速排障流程与常用 SQL
- 快速巡检清单
- 看会话与负载:onstat -u;异常会话、长事务优先排查。
- 查锁与阻塞:onstat -k 或 SELECT * FROM sysmaster:syslocks; 识别锁等待链。
- 看缓冲池:onstat -p(命中率、脏页、LRU 状态),判断是否内存不足或刷脏过慢。
- 看 I/O 队列:onstat -g ioq,识别磁盘瓶颈与热点设备。
- 看 CPU/线程:onstat -g cpu,确认数据库是否消耗异常 CPU。
- 主机侧复核:vmstat 1、iostat -x 1、sar -u 1、netstat -an,排除资源争用与网络异常。
- SQL 辅助
- 缓冲池:SELECT * FROM sysmaster:syspool;
- 锁:SELECT * FROM sysmaster:syslocks;
- 常见优化动作
- 调整缓冲池与 I/O 相关参数(如 LRU、写入阈值),必要时执行 onmode -F 刷新缓冲池;结合 set explain on 分析慢 SQL 执行计划。