现有状况
根据数据库日志文件db2diag.log,我们发现以下问题:
1. Memory Heap Error;
2. cdbold有锁升级现象;
观察当前环境后,我们发现系统内存平均使用率很高,2G内存平时使用量达到1.96G,可再分配的内存不到40M,非常有限。
参数调节
因此,我们采用加速脏业回写的方式来尝试改变性能,语法为:
db2 connnect to stmaold;
db2 update db cfg for stmaold using CHNGPGS_THRESH 30;
用同样的方式,我们也改变了其他三个数据库的参数。参数改变后,必须进行数据库重激活或者数据库实例重起。例如:
db2stop
db2start
然后该参数能够开始起作用。
此外,我还将cdbold的锁列表改大:
db2 connect to cdbold;
db2 update db cfg for cdbold using locklist 200;
该参数直接生效。并多占用了0.4M内存。
其他环节
如果要将参数修改回原样,可采用以下设置:
db2 connnect to <数据库名>;
db2 update db cfg for <数据库名> using CHNGPGS_THRESH 60;
db2 connect to cdbold;
db2 update db cfg for cdbold using locklist 200;
此外,建议定期检测db2diag.log文件,如果出现Memory Heap Error,建议选择适当的时间对数据库进行重起。而且,观察出现该错误的时间应用的什么功能在运行,收集errpt信息和DB2support信息,以供进一步分析处理。