Linux环境下Informix性能监控与调优指南
onstat -c:查看CPU使用情况及进程信息(如用户进程、系统进程占比);onstat -m:显示内存使用详情(缓冲池命中率、LRU队列状态、共享内存分配);onstat -d:监控磁盘I/O统计(读写速率、I/O等待时间、各dbspace负载);onstat -s:分析SQL语句执行统计(执行次数、平均耗时、全表扫描次数);onstat -z:确认统计信息的起始时间,辅助判断数据时效性。onmode -l查看当前模式(在线/离线/恢复),onmode -j强制日志切换,帮助监控日志写入是否及时。dbstat:提供数据库对象级统计(如dbstat -d查看表空间使用率,dbstat -t查看表碎片情况);smon:系统监控工具,启动后实时显示内存、进程等资源使用(如smonmon);prof:SQL性能分析工具,通过prof -o output_file query_name输出查询执行细节,识别慢查询瓶颈。oninit)的资源消耗,判断是否存在进程级瓶颈。vmstat 1 5:每秒采集1次,共5次,查看系统整体资源使用趋势(如进程数、内存交换、CPU空闲率);iostat -x 1:监控磁盘I/O负载(如读写速率、I/O等待时间、设备利用率),判断磁盘是否成为瓶颈;sar -u 1 3:查看CPU使用率的1分钟平均值(共3次),支持长期性能分析。df -h:以人类可读格式显示磁盘空间使用量,避免因磁盘满导致Informix无法正常运行;netstat -an:显示所有网络连接信息(如连接数、端口状态),监控数据库网络性能。/var/log/informix目录,主要包括online.log(在线日志,记录数据库操作、错误信息)、alert.log(告警日志,记录严重事件,如磁盘空间不足)。tail -f online.log实时查看日志更新,grep "ERROR" online.log筛选错误信息,快速定位性能问题(如死锁、磁盘空间不足、SQL语法错误)。/etc/sysctl.conf文件,优化以下参数:
vm.swappiness:设置为10-20(降低swap倾向,优先使用物理内存);fs.file-max:设置为65536以上(增加系统最大文件描述符数,满足高并发连接需求);vm.dirty_ratio:设置为10-20(控制脏页写入磁盘的阈值,减少I/O等待);net.ipv4.tcp_fin_timeout:设置为30秒(缩短TCP连接超时时间,释放闲置连接)。noatime、nodiratime),减少文件元数据操作。CLEANERS:设置为活跃磁盘数目(如10块磁盘则设为10),负责将缓冲区修改刷新到磁盘,过小会导致checkpoint时间过长,过大则会增加系统负载;NUMCPUVPS:设置为物理CPU核心数-1(OLTP场景)或等于物理CPU核心数(OLAP场景),优化CPU资源分配(如4核CPU设为3);SHMVIRTSIZE:设置为物理内存的75%(OLAP场景)或50%(OLTP场景),满足共享内存需求(如16GB内存设为12GB);LRU_MAX_DIRTY/LRU_MIN_DIRTY:设置为80/70(控制脏页刷新时机,避免内存溢出);CKPTINTVL:设置为3600秒(每小时执行一次checkpoint,平衡数据一致性与性能)。logdbs放磁盘1、phydbs放磁盘2、tmpdbs放磁盘3),减少I/O冲突。CREATE INDEX idx_name ON table(col1, col2));避免在索引列上使用函数(如WHERE UPPER(name) = 'JOHN'),否则会导致索引失效。EXPLAIN命令分析查询执行计划(如EXPLAIN SELECT * FROM orders WHERE customer_id = 100),识别全表扫描、排序操作等低效环节;优化JOIN操作(如减少关联表数量、使用索引列关联);避免SELECT *,只返回必要列。UPDATE STATISTICS命令(如UPDATE STATISTICS HIGH FOR TABLE customers),更新表统计信息,帮助优化器生成最优执行计划。READ COMMITTED设为默认级别,减少锁持有时间);设置锁等待超时(如LTXHWM设为50%,LTXEHWM设为60%),避免长时间锁等待导致的性能下降。