温馨提示×

centos上informix怎么优化

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

在 CentOS 上优化 IBM Informix 数据库,通常需要从 操作系统层、数据库参数、存储与 I/O、SQL 与应用、监控与维护 几个方面入手。下面给你一份比较系统的优化指南(以常见 ONCONFIG + CentOS 7/8 为背景)。


一、CentOS 操作系统层优化

1. 内核参数优化

编辑 /etc/sysctl.conf:

# 共享内存
kernel.shmmax = 68719476736
kernel.shmall = 16777216

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

# 网络
net.core.somaxconn = 1024
net.ipv4.tcp_max_syn_backlog = 4096

执行:

sysctl -p

2. 用户资源限制

编辑 /etc/security/limits.conf:

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

3. 关闭不必要的服务

systemctl disable firewalld
systemctl stop firewalld

(生产环境可用 iptables 白名单替代)

4. 文件系统建议

  • 数据盘使用 XFS
  • 挂载选项:
mount -o noatime,nodiratime /dev/sdb /informix

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

1. 内存相关

BUFFERS        100000      # 根据内存调整(每buffer 4K)
LOCKS          20000
LOGSIZE        1024
PHYSDBS        rootdbs

经验值:

  • 物理内存 32G → BUFFERS 可设 200000~400000
  • 使用 onstat -p 看缓存命中率(>95% 较好)

2. CPU 与线程

NUMCPUVPS      8
MULTIPROCESSOR 1
VPCLASS        cpu,num=8

规则:

  • NUMCPUVPS ≈ 物理核数
  • 不要超过 CPU 核数太多

3. 磁盘 I/O

RA_PAGES       64
RA_THRESHOLD  16
CKPTINTVL     300

三、存储与 dbspace 优化

1. dbspace 规划(非常重要)

  • rootdbs:只放系统
  • data1dbs、data2dbs:业务数据
  • tempdbs:临时表
  • logdbs:逻辑日志

示例:

onspaces -c -d data1dbs -p /informix/data1 -o 0 -s 2000000

2. 使用裸设备 / 多磁盘

  • 数据、日志、临时表 分盘
  • 避免所有 dbspace 在同一块盘

四、SQL 与索引优化

1. 查看慢 SQL

onstat -g sqc
onstat -g ses

2. 索引策略

  • 高选择性字段建索引
  • 避免过多索引(影响写入)
  • 复合索引注意最左前缀

3. UPDATE STATISTICS

定期执行:

UPDATE STATISTICS HIGH FOR TABLE tab1;

或:

UPDATE STATISTICS MEDIUM;

五、日志与检查点优化

1. 逻辑日志

LOGFILES 20
LOGSIZE  1024

2. 检查点

CKPTINTVL 300
RTO_SERVER_RESTART 0

六、临时表与排序优化

DBSPACETEMP tempdbs
PdqPriority 50

大查询可启用 PDQ:

SET PDQPRIORITY 100;

七、监控与日常维护

常用命令

onstat -i
onstat -p      # 性能
onstat -d      # dbspace
onstat -l      # 日志
onstat -u      # 用户会话

定期任务

  • 每周:UPDATE STATISTICS
  • 每月:重建碎片表
ALTER TABLE tab1 FRAGMENT BY ROUND ROBIN;

八、常见性能问题速查

现象 可能原因
CPU 高 SQL 未走索引
IOWAIT 高 dbspace 单盘
锁等待 事务过长
内存不足 BUFFERS 过大

九、如果你愿意,我可以更具体帮你

你可以补充:

  1. Informix 版本(11.5 / 12.10 / 14.10?)
  2. CentOS 版本
  3. 主要业务(OLTP / 报表)
  4. 当前 onstat -p 输出

我可以给你一份 针对你机器的 ONCONFIG 配置建议。

0 踩