在 Linux 上 Informix 占用 CPU 高,通常不是“Informix 本身吃 CPU”,而是某种工作负载或配置问题导致。下面按常见原因 → 排查方法 → 解决思路来说明。
这是 CPU 高的最主要原因。
表现:
排查:
onstat -g ses
onstat -g sql
onstat -g act
重点看:
RUNNING 状态ISAM cost 高解决:
SET EXPLAIN ONSET ENVIRONMENT OPTCOMPIND 2;
Informix 优化器依赖 UPDATE STATISTICS。
表现:
解决:
UPDATE STATISTICS HIGH FOR TABLE table_name;
-- 或
UPDATE STATISTICS LOW;
Informix 使用 CPU VP(Virtual Processor)
常见错误:
查看:
onstat -g glo
onstat -g vpc
建议:
表现:
排查:
onstat -g sql
onstat -g lac
onstat -g wai
解决:
表现:
查看:
onstat -g ckp
onstat -g log
优化:
Linux 本身问题也可能“看起来是 Informix”
检查:
top -H
pidstat -p <informix_pid>
mpstat
看:
# 1. 看整体
onstat -
onstat -g glo
# 2. 看谁在跑
onstat -g ses
onstat -g sql
# 3. 看 CPU VP
onstat -g vpc
# 4. 系统层
top
pidstat -tu -p <pid>
你可以贴出:
onstat - 输出onstat -g ses 中 CPU 高的 session我可以直接帮你判断 是 SQL 问题、配置问题,还是系统问题。