温馨提示×

linux informix为何占用高

小樊
40
2026-10-07 22:40:21
栏目: 智能运维

在 Linux 上 Informix 占用高(CPU、内存、磁盘 IO 等),通常不是单一原因,而是以下一类或多类问题叠加。下面按最常见 → 较少见给你一个排查清单。


一、最常见原因

1. 长事务 / 大事务

  • 未提交的事务长时间运行
  • 批量操作未分批(如 DELETE 全表)

检查:

onstat -g sql
onstat -g ses
onstat -g act

看:

  • SQL 执行时间很长
  • Isolation 为 Dirty Read 以外
  • 事务状态为 Open

2. 缺少索引 / 全表扫描

  • 大表无索引
  • SQL 条件字段无索引

检查:

onstat -g sqc

典型现象:

  • Seq Scan 多
  • 单条 SQL 消耗大量 CPU/IO

3 统计信息过期

  • 优化器选错执行计划

解决:

update statistics for table <表名>;
-- 或
update statistics low for all;

4 逻辑日志 / 物理日志配置不合理

  • 逻辑日志太小 → 频繁切换
  • 物理日志在慢盘

检查:

onstat -l

5 Checkpoint 频繁

  • 脏页多
  • 缓冲池过小或过大

检查:

onstat -p
onstat -g ckp

关注:

  • ckp 频繁
  • bufwaits 高

二、内存相关

6 共享内存配置过大

常见参数:

  • BUFFERS
  • SHMVIRTSIZE
  • LOCKS

现象:

  • OS 内存被吃满
  • swap 开始使用

7 内存泄漏(较少)

  • 第三方 UDR / C UDF
  • 自定义应用连接未释放

三、磁盘 IO 问题

8 磁盘 IO 瓶颈

  • dbspace 在单盘
  • 日志与数据混放

检查:

iostat -x 1

9 临时表空间不足

  • 大排序使用磁盘
  • DBSPACETEMP 未配置

四、连接与并发

10 连接数暴增

onstat -g ses | wc -l

常见原因:

  • 连接池未限制
  • 应用异常重连

11 锁等待 / 死锁

onstat -g wrt
onstat -g lck

五、操作系统层面

12 Linux 参数不合理

  • vm.swappiness 高
  • 文件系统 cache 过大
sysctl vm.swappiness

建议:

vm.swappiness=10

快速定位思路(实用)

# 1. 看整体
onstat -
onstat -p

# 2. 看谁在跑
onstat -g ses
onstat -g sql

# 3. 看资源
top -p $(onstat - | grep pid | awk '{print $2}')
iostat -x 1

如果你愿意

你可以补充:

  1. 占用高的是 CPU / 内存 / IO?
  2. onstat - 输出
  3. Informix 版本
  4. 是否近期有变更(SQL、参数、业务)

我可以帮你精准判断是哪一类问题,甚至直接给你调优参数。

0 踩