温馨提示×

Linux Informix怎么优化

小樊
46
2026-07-05 15:37:00
栏目: 智能运维

Informix 在 Linux 上的优化,通常从 操作系统、数据库参数、SQL 与应用、存储与硬件 四个层面来做。下面给你一套比较系统、实战向的优化思路(适用于 Informix 11+ / 12+ / 14)。


一、Linux 系统层优化(地基)

1. 内核参数(重点)

编辑 /etc/sysctl.conf

# 共享内存
kernel.shmmax = 17179869184   # 16GB,建议 ≥ BUFFERPOOL
kernel.shmall = 4194304

# 信号量
kernel.sem = 250 32000 100 128

# 文件句柄
fs.file-max = 655360

# 网络
net.core.somaxconn = 4096
net.ipv4.tcp_fin_timeout = 30
sysctl -p

2. 用户限制

/etc/security/limits.conf

informix soft nofile 65536
informix hard nofile 65536
informix soft nproc 65536
informix hard nproc 65536

3. 关闭不必要的服务

  • 关闭 NUMA(对数据库更友好)
  • 关闭 swap 使用(或降低 swappiness)
vm.swappiness = 1

二、Informix 实例参数优化(ONCONFIG)

1. 内存相关(最关键)

BUFFERPOOL(最重要)

BUFFERPOOL size=16k,buffers=200000

经验值:

  • 物理内存 50%~70% 给 Informix
  • OLTP:小 buffer(2k/4k)+ 多 buffers
  • OLAP:大 buffer(16k/32k)

查看命中率:

onstat -p

关注:

  • buffer read hit ratio > 95%
  • buffer write hit ratio > 90%

2. 锁与事务

LOCKS=100000
DEF_TABLE_LOCKSIZE=ROW

避免表级锁。


3. 日志与检查点

LOGFILES=10
LOGSIZE=50000
CKPTINTVL=300

防止频繁 checkpoint。


4. 虚拟处理器(CPU VP)

VPCLASS cpu,num=8,noage

经验:

  • num = CPU 核数 或 2/3
  • 不要超过物理核数

查看:

onstat -g glo

三、存储与 I/O 优化(性能瓶颈常在这里)

1. 表空间与 chunk 规划

  • 数据、索引、临时表空间 分开
  • chunk 使用 裸设备 或 XFS

推荐结构:

rootdbs
datadbs
indexdbs
tempdbs
logdbs

2. 临时表空间

CREATE TEMP TABLE ... IN tempdbs;

临时排序、hash join 非常依赖 tempdbs。


3. 磁盘调度

echo deadline > /sys/block/sda/queue/scheduler

四、SQL 与应用优化(最容易忽视)

1. 索引优化

  • 避免全表扫描
  • 联合索引顺序 = where 条件顺序
  • 定期重建碎片索引
UPDATE STATISTICS HIGH FOR TABLE t1;

2. SQL 写法

❌ 错误:

SELECT * FROM t WHERE func(col)=1;

✅ 正确:

SELECT * FROM t WHERE col = value;

3. 绑定变量

避免:

PREPARE / EXECUTE IMMEDIATE

使用参数化 SQL。


4. 执行计划分析

SET EXPLAIN ON;

关注:

  • seq scan
  • 索引使用
  • join 顺序

五、Informix 常用性能诊断命令

目的 命令
内存命中率 onstat -p
锁等待 onstat -k
SQL 执行 onstat -g sql
表空间 onstat -d
会话 onstat -u
检查点 onstat -m

六、典型优化顺序(实战建议)

  1. 先调 Linux 内核
  2. BUFFERPOOL + VP
  3. 表空间 & chunk
  4. UPDATE STATISTICS
  5. 索引 + SQL
  6. 应用连接池 & 事务控制

七、如果你愿意,我可以继续帮你

你可以直接贴:

  • onstat -p
  • onstat -g glo
  • onstat -d
  • 慢 SQL
  • 服务器配置(CPU / 内存 / 磁盘)

我可以 直接帮你算 BUFFERPOOL、VP、索引方案,而不是只给理论。

0