温馨提示×

informix在centos如何调优

小樊
47
2026-10-14 19:00:30
栏目: 智能运维

下面从 操作系统层、数据库参数层、SQL/索引层、监控与工具 四个方面,系统性地说明 Informix 在 CentOS 上的调优方法(以较常见的 Informix 11.7 / 12.10 / 14.10 为例)。


一、CentOS 操作系统层调优

1. 内核参数(/etc/sysctl.conf)

重点关注 共享内存、信号量、文件句柄:

kernel.shmmax = 68719476736
kernel.shmall = 16777216
kernel.sem = 250 32000 100 1024
fs.file-max = 655360

执行:

sysctl -p

2. 用户资源限制(/etc/security/limits.conf)

Informix 用户(如 informix):

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

3. 文件系统与磁盘

  • 使用 xfs / ext4
  • 数据盘与日志盘 分离
  • 使用 多块磁盘做 RAID 10
  • 关闭 atime:
mount -o noatime /dev/sdb /informix

4. 大页内存(可选)

对大内存实例:

echo 2048 > /proc/sys/vm/nr_hugepages

二、Informix 数据库层调优(onconfig)

1. 内存相关(最重要)

共享内存

SHMTOTAL       0          # 0=自动,生产可设具体值
BUFFERS        100000     # 缓冲池(页)
LOCKS          20000
LOGSIZE        10240      # 逻辑日志大小(KB)

BUFFERS 经验值:
物理内存的 30%~50%(OLTP)

2. CPU 与线程

NUMCPUVPS      8
MULTIPROCESSOR 1
VPCLASS        cpu,num=8
VPCLASS        aio,num=4

3. 磁盘 I/O

RA_PAGES       64
RA_THRESHOLD  16
CKPTINTVL     300

4. 日志与检查点

LOGFILES      10
LOGSIZE       10240
CKPTINTVL     300

三、表和索引调优

1. 表分片(Fragmentation)

按时间或范围分片:

CREATE TABLE orders (
  id INTEGER,
  order_date DATE
) FRAGMENT BY RANGE (order_date)
  INTERVAL (NUMTOYMINTERVAL(1,'MONTH'))
  PARTITION p0 VALUES < DATE('2024-01-01');

2. 索引策略

  • 高并发 OLTP:少量索引
  • 大表:复合索引
  • 避免函数索引(除非必要)

3. 统计信息

定期更新:

UPDATE STATISTICS HIGH FOR TABLE orders;

或自动:

AUTO_STAT_MODE 1

四、SQL 与执行计划调优

1. 查看执行计划

SET EXPLAIN ON;
SELECT ...

查看:

cat sqexplain.out

2. 常见优化点

  • 避免 SELECT *
  • 使用 绑定变量
  • 避免隐式类型转换
  • 大事务拆小事务

五、监控与诊断工具

1. Informix 自带

onstat -g cfg
onstat -p
onstat -g ses
onstat -g sql
onstat -g io

2. 系统层

iostat -x 1
vmstat 1
top

六、典型 OLTP 调优示例(8C16G)

NUMCPUVPS   8
BUFFERS     80000
LOCKS       20000
LOGFILES    10
LOGSIZE     10240
CKPTINTVL   300
RA_PAGES    64

七、调优顺序建议

  1. 操作系统参数
  2. onconfig 内存/CPU
  3. 表结构 & 分片
  4. 索引 & 统计信息
  5. SQL 优化
  6. 持续监控

如果你能提供:

  • Informix 版本
  • CentOS 版本
  • 内存 / CPU
  • 业务类型(OLTP / OLAP)

我可以给你一套 可直接用的 onconfig 模板。

0 踩