温馨提示×

centos下informix如何调优

小樊
44
2026-09-27 03:56:56
栏目: 智能运维

在 CentOS 下对 IBM Informix 进行调优,通常从操作系统层、数据库参数、SQL 与索引、存储与 I/O、监控工具几个维度入手。下面给你一套实用、可落地的调优思路(以常见版本如 11.5 / 12.10 / 14.10 为例)。


一、CentOS 操作系统层调优

1. 内核参数(影响很大)

编辑 /etc/sysctl.conf:

kernel.shmmax = 68719476736        # 共享内存上限
kernel.shmall = 16777216           # 共享内存页总数
kernel.sem = 250 32000 100 128
net.core.rmem_max = 4194304
net.core.wmem_max = 4194304

应用:

sysctl -p

2. 文件句柄与用户限制

/etc/security/limits.conf:

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

3. 关闭透明大页(THP)

echo never > /sys/kernel/mm/transparent_hugepage/enabled

写入 rc.local 持久化。


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

核心文件:$INFORMIXDIR/etc/onconfig

1. 内存相关

BUFFERS        100000     # 数据缓冲区(页)
LRUS           8          # LRU 队列数
NUMAIOVPS      4          # 异步 IO 线程
SHMVIRTSIZE    4096000    # 虚拟内存初始
SHMADD         1048576

经验:BUFFERS 占物理内存 30%~50%

2. 磁盘 I/O

RA_PAGES       64
RA_THRESHOLD  16
CKPTINTVL     300

3. 线程与 CPU

NUMCPUVPS     4
VPCLASS cpu,num=4
MULTIPROCESSOR 1

4. 日志与事务

LOGBUFF       512
PHYSBUFF      512

三、存储与 Dbspace 优化

1. 分离关键 dbspace

  • rootdbs(小)
  • datadbs(数据)
  • logdbs(逻辑日志)
  • phydbs(物理日志)
  • tmpdbs(排序)

2. 使用裸设备 / LVM

  • 生产环境推荐 裸设备 或 LVM + 条带
  • 磁盘分散到不同控制器

3. CentOS 文件系统建议

若用文件系统:

  • noatime,nodiratime
  • XFS 文件系统

四、SQL 与索引调优

1. 使用 SET EXPLAIN

SET EXPLAIN ON;
SELECT ...

查看:

cat $INFORMIXDIR/tmp/sqexplain.out

2. UPDATE STATISTICS

UPDATE STATISTICS HIGH FOR TABLE customer;
UPDATE STATISTICS LOW FOR TABLE orders;

3. 索引原则

  • 高选择性列建索引
  • 避免函数索引滥用
  • 大表使用分片(FRAGMENT)

五、监控与诊断工具

1. onstat 常用

onstat -p     # 性能
onstat -g ses # 会话
onstat -g sql # SQL
onstat -g iof # IO
onstat -g ckp # 检查点

2. oncheck

oncheck -pt dbname:tabname

3. 系统层

iostat -x 1
vmstat 1
top -u informix

六、常见性能问题速查

问题 原因 处理
CPU 高 SQL 差 EXPLAIN
IO 高 缓冲不足 增加 BUFFERS
检查点慢 日志小 增大 PHYSBUFF
锁等待 事务长 拆分事务
内存不足 SHMVIRT 调大

七、典型调优流程(推荐)

  1. 明确瓶颈(CPU / IO / 内存)
  2. onstat 定位问题
  3. 调 ONCONFIG
  4. 优化 SQL / 索引
  5. 再监控验证

如果你能提供:

  • Informix 版本
  • CentOS 版本
  • 实例规模(内存 / CPU / 数据量)
  • 具体慢的场景(查询 / 写入 / 备份)

我可以给你针对性调优方案或 onconfig 示例。

0 踩