简介
在启用时,内存调优器会动态地把可用的内存资源分配给多个内存消耗者,包括排序堆、包缓存、锁列表和缓冲区池。此特性会反复地小幅修改内存配置,以改进系统的总体性能。
STMM 所做的所有修改会记录在两个位置:db2diag.log 和 STMM 日志文件。下面讨论这两个日志文件的内容,以及如何使用 db2diag 工具和 parseStmmLogFile.pl 工具监视 STMM 所做的修改。
STMM 的工作方式
STMM 在新的内部指标的帮助下做出决策,这些指标预测增加内存对给定的堆的影响。通过与 STMM 的高级调优算法结合使用,在大多数情况下,这些指标可以在一小时内把系统从开箱即用配置调整到接近最优的内存使用状态。但是,在系统调优过程中,STMM 可能做出数百个调优决策,每个决策都会导致修改配置参数或缓冲区池大小。配置文件只反映最近的修改,所以要想了解配置参数或缓冲区池的修改历史,就需要查看 db2diag.log 和 STMM 日志文件。
通过 db2diag.log 文件监视修改
db2diag.log 文件存储内存管理器所做的每次配置修改的简单信息。在此文件中,可以看到表示配置修改的记录,见清单 1:
清单 1. 表示配置修改的记录
2006-10-17-19.10.00.912218-240 I408210A457 LEVEL: Event
PID : 946302 TID : 1 PROC : db2stmm (MYDB1) 1
INSTANCE: ewhhr NODE : 001 DB : MYDB1
APPHDL : 1-52 APPID: *N1.cgarciaa.060809150048
AUTHID : CGARCIAA
FUNCTION: DB2 UDB, config/install, sqlfLogUpdateCfgParam, probe:20
CHANGE : STMM CFG DB DEWHR000: "Sheapthres_shr" From: "109306" <automatic>
To: "105115" <automatic>