温馨提示×

linux informix如何调优参数

小樊
37
2026-09-29 04:36:31
栏目: 智能运维

在 Linux 上运行 IBM Informix Dynamic Server(IDS) 时,性能调优通常分为 操作系统层(Linux) 和 数据库层(Informix 参数) 两部分。下面从实战角度给你一个系统化的调优指南。


一、Linux 系统层调优(前提)

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

# 共享内存
kernel.shmmax = 68719476736        # 单段最大共享内存(如 64GB)
kernel.shmall = 16777216           # 共享内存总页数
kernel.shmmni = 4096

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

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

# 网络
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1

执行:

sysctl -p

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

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

3. 磁盘与文件系统

  • 使用 XFS / ext4
  • 数据盘与日志盘分离
  • 开启 Direct I/O(Informix 支持)
  • 使用多块磁盘做 chunk 分布

4. 关闭透明大页(THP)

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

(建议写入 rc.local)


二、Informix 核心参数调优(onconfig)

配置文件:$INFORMIXDIR/etc/onconfig.<servername>

1. 内存相关(最重要)

共享内存

SHMTOTAL       0          # 0=自动,生产建议设具体值
BUFFERS        100000     # 缓冲池(页),根据内存调整
LOCKS          200000
LOGSIZE        10240      # 逻辑日志大小(KB)

示例(64GB 内存):

BUFFERS        2000000    # ~16GB

虚拟内存

VPCLASS        cpu,num=8       # CPU VP 数量
VPCLASS        aio,num=4       # 异步 IO VP

2. CPU 与并发

MULTIPROCESSOR 1
NUMCPUVPS      8
SINGLE_CPU_VP  0

经验:

  • NUMCPUVPS ≈ 物理核数
  • OLTP:CPU VP 多
  • 报表:可加 PRIORITY 调整

3. 磁盘 I/O 调优

RA_PAGES       256
RA_THRESHOLD   64
  • 顺序扫描多 → 加大 RA_PAGES
  • 随机 IO 多 → 保持默认

4. 日志与检查点

CKPTINTVL      300
LRUS          8
LUR           80
  • LRUS:缓冲 LRU 队列数
  • LUR:脏页刷新阈值

5. 网络与连接

NETTYPE        socssl,1,50,CPU
NETTYPE        ipcshm,1,100,CPU
  • 短连接多 → 增加 max connections
  • 长连接 → 使用 IPCSHM

三、数据库对象级调优

1. 索引

UPDATE STATISTICS HIGH FOR TABLE tab1;
  • 定期 UPDATE STATISTICS
  • 避免过多索引(写性能)

2. 表分片(Fragmentation)

CREATE TABLE t1 (
  id INT
) FRAGMENT BY ROUND ROBIN IN dbs1, dbs2, dbs3;

3. 临时表空间

DBSPACETEMP    tempdbs1,tempdbs2

四、监控与诊断工具

1. onstat 常用

onstat -p     # 性能概要
onstat -g seg # 共享内存
onstat -g io  # IO 分布
onstat -g sql # SQL 状态

2. 慢 SQL

onstat -g ses
onstat -g sql <session_id>

3. 日志

  • 在线日志:online.log
  • 逻辑日志:onlog

五、典型场景建议

OLTP

  • 大 BUFFERS
  • 多 CPU VP
  • 低 RA_PAGES
  • 高频 CHECKPOINT

OLAP / 报表

  • 大 RA_PAGES
  • 表分片
  • 并行查询(PDQ)
PDQPRIORITY   50

六、调优顺序建议

  1. Linux 内核 & 资源限制
  2. Informix 内存参数
  3. VP 与 IO
  4. SQL / 索引 / 统计信息
  5. 持续监控(onstat)

如果你能提供:

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

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

0 踩