一、CentOS上Informix的监控方法
onstat -:查看数据库整体运行状态(实例是否在线、版本信息等);onstat -g seg:检查共享内存段状态(关键组件是否正常);onstat -g ses:查看当前所有会话信息(用户连接、执行语句等);onstat -p:分析性能统计(缓冲区命中率、锁等待等);onstat -k:监控锁状态(锁等待数量、死锁情况);onstat -c:查看SQL语句缓存(命中率、执行效率);onstat -d:检查数据库空间使用(表空间、碎片情况)。oncheck -ce:检查关键数据库结构(如表、索引);oncheck -cD:验证数据字典的一致性。onmode -c all显示当前配置)。top -p $(pgrep oninit)或htop -p $(pgrep oninit),聚焦oninit进程及子线程的CPU、内存占用;vmstat 5:每5秒刷新一次,查看内存、交换分区、CPU使用率;iostat -x 5:监控磁盘I/O负载,关注%util(设备利用率,>70%需警惕)、await(平均响应时间,>20ms需优化);sar -u 2 5:历史CPU使用率分析(如过去2秒采样,共5次)。netstat -anp | grep oninit,查看Informix相关的网络连接状态(如客户端连接、端口监听)。tail -f $INFORMIXDIR/online.log,实时查看数据库操作日志(如SQL执行、连接建立);tail -f $INFORMIXDIR/online.log.alarm,过滤出错误(Error)、警告(Warning)信息,快速响应异常;grep命令提取特定信息,如tail -f $INFORMIXDIR/online.log | grep -E "Error|Failed",仅显示错误相关日志。二、CentOS上Informix的调优策略
NUMCPUVPS:设置为物理CPU数量(OLTP应用)或物理CPU数量-1(OLAP应用),避免过多VP导致上下文切换;BUFFERS:设置为物理内存的20%-25%(OLTP),或75%(OLAP),通过onstat -b监控缓冲区命中率(目标>90%);LRUS:多处理器系统设置为min(4, NUMCPUVPS),通过onstat -r监控LRU队列(避免队列过长导致磁盘I/O增加);CLEANERS:每个磁盘驱动器分配1个,磁盘数量多时按磁盘数/2(20-100个磁盘)或磁盘数/4(>100个磁盘)调整,确保脏页及时写入磁盘。LOCKS:设置为10000-20000(根据并发用户数调整),避免锁争用;DEADLOCK_TIMEOUT:设置为60秒(默认),减少死锁检测时间;LOGFILES:设置为5-7(足够覆盖高峰期日志需求);LOGSIZE:设置为10000-20000(每日志文件大小,单位为页),避免频繁切换日志。RA_PAGES:设置为10-20(顺序扫描时预读的页数),提高顺序I/O效率;RA_THRESHOLD:设置为5-10(内存中未处理的页数,达到阈值时预读),配合RA_PAGES使用;MAX_PDQPRIORITY:设置为50(并行查询资源占比上限),避免并行查询占用过多资源。shmsys:shminfo_shmmax设置为系统内存的一半(共享内存最大值),semsys:seminfo_semmni设置为4096(信号量最大数目);ext4或xfs文件系统(支持大文件和高并发),挂载时添加noatime选项(减少文件访问时间更新)。oncheck -ce检查索引完整性;EXPLAIN分析查询计划(避免子查询、临时表,优先使用JOIN);只返回必要的列和行(使用SELECT column1, column2 FROM table WHERE condition);UPDATE STATISTICS(更新统计信息,帮助优化器选择最佳执行计划);对大表进行分区(如按时间分区),提高查询效率。oncheck -pr检查)执行重组(ALTER TABLE table_name REORGANIZE),提高数据访问效率;onbar备份(全量+增量),确保数据安全;测试恢复流程(如使用onbar -r恢复),确保备份有效性。