一、操作系统级优化
vm.swappiness(建议设为10,降低内核使用Swap的倾向)、vm.watermark_scale_factor(优化Page Cache回收策略);关闭不必要的系统服务(如systemctl list-units --types service查看并禁用未使用的服务),释放内存和CPU资源。noatime,nodiratime选项(避免不必要的文件访问时间更新);调整read_ahead_kb参数(如echo 4096 > /sys/block/sda/queue/read_ahead_kb,优化顺序I/O预读性能)。noop,机械盘用deadline,提升I/O调度效率)。二、Informix数据库配置优化
SHMADD增加共享内存段数量,SHMVIRTSIZE设置初始共享内存大小);优化LRU(缓冲池链表)参数(LRUS设为CPU VP数量的2-4倍,LRU_MAX_DIRTY控制脏页比例,如设为70%);启用大页(vm.nr_hugepages=1024,减少页表项,提升内存访问速度)。numcpuvps(通常为CPU核心数-1,充分利用多核);若为单路CPU,设置single_cpu_vp=1(避免多VP竞争);绑定VP到特定CPU(aff_nprocs和aff_sproc,减少上下文切换)。BUFFERPOOL大小(如BUFFERPOOL size=2048,单位MB,缓存常用数据页);调整日志缓冲区LOGBUF(如LOGBUF size=8192,单位KB,适应高并发写入);优化锁内存LOCKMEM(如LOCKMEM size=1024,单位MB,减少锁争用)。三、查询与索引优化
EXPLAIN命令分析查询执行计划(识别全表扫描、索引失效等问题);避免SELECT *(只选择必要列,减少数据传输);用JOIN替代子查询(提升多表关联效率);将过滤条件放在WHERE子句前面(利用索引加速)。WHERE、JOIN、ORDER BY列)创建索引;使用复合索引(如(lastname, firstname),匹配查询顺序);避免过度索引(每个索引增加写操作开销);定期重建索引(ALTER INDEX idx_name REBUILD,保持索引效率)。四、监控与维护
onstat命令(如onstat -g cpu查看CPU使用率,onstat -g mem查看内存使用,onstat -g i查看I/O状态);结合第三方工具(如Zabbix、IBM Data Server Manager,实现实时监控和告警)。UPDATE STATISTICS,帮助优化器生成最佳执行计划);重建碎片化索引(ALTER INDEX idx_name REBUILD);清理无用数据(如归档历史数据,减少表大小);备份数据库(定期全量+增量备份,确保数据安全)。