2.4 多分区下的内存管理特性
DB2性能管理与实战
在分区数据库环境中使用自调整内存功能时,有一些因素决定该功能是否能适当地调整系统。
对分区数据库启用自调整内存功能时,会将一个数据库分区指定为调整分区,所有内存调整决定都根据该数据库分区的内存和工作负载特征作出。在该分区中作出调整决策之后,会将内存调整纷纷到其他数据库分区,以确保所有数据库分区都维护类似的配置。
单调整分区模型假定,仅当所有数据库分区具有类似内存需求时,才会使用该功能。在确定顶是否对分区数据库启用自调整内存功能时,请使用下列准则。
建议对分区数据库使用自调整内存功能的情况
当所有数据库分区都具有类似内存需求并且正在类似硬件上运行时,可以不进行任何修改就启用自调整内存功能。这些类型的环境共享下列特征。
boll 所有数据库分区都在完全相同的硬件上运行,并且多个逻辑数据库分区均匀地分布在多个物理数据库分区中。
boll 数据分布情况最佳或者接近最佳。
boll 工作负载均匀地分布在各个数据库分区中,这意味着各个数据库分区中一个或多个堆的内存需求均相同。
在这种环境中,如果所有数据库分区的配置相同,那么自调整内存功能将正确地配置系统。
建议对分区数据库使用自调整内存功能并进行限定的情况
在环境中的大多数数据库分区具有类似内存需求并且正在类似硬件上运行的情况下,可以使用自调整内存功能,但进行初始配置时要小心。这些系统可能有一组数据库分区用于数据,并且有一组少得多的协调程序分区和目录分区。在这些环境中,将协调程序分区和目录分区配置为与包含数据的数据库分区不同可能会有好处。
应该对所有包含数据的数据库分区启用自调整内存功能,并且应该将其中的一个数据库分区指定为调整分区。由于协调程序分区和目录分区的配置可能不同,因此应对那些分区禁用自调整内存功能,将这些分区的SELF_TUNING_MEM数据库配置参数设置OFF。
建议不要对分区数据库使用自调整内存功能的情况
如果各个数据库分区的内存需求有所不同,或者不同的数据库分区正在极不相同的硬件上运行,那么最好禁用自调整内存功能。
2.4.1 比较不同数据库分区的内存需求
确定不同数据库分区的内存需求是否非常相近的最佳方法是查看快照监视器。如果下列快照元素在所有数据库分区中都相近(差别不超过20%),那么可以认为这些数据库分区的内存需求极为相近。
通过以下命令收集数据:
db2=>get snapshot for database on <dbname>
当前挂起的锁定数 =0
锁定等待数 =0
数据库等待锁定的时间(毫秒) =0
正在使用的锁定列表内存(以字节计) =4968
锁定升级次数 =0
互斥锁定升级次数 =0
已分配的共享排序堆总数 =0
共享排序堆高水位标记 =0
超出阈值后的排序次数(共享内存) =0
排序溢出数 =0
程序包高速缓存查询数 =13
程序包高速缓存插入数 =1
程序包高速缓存溢出数 =0
程序包高速缓存高水位标记(以字节计) =655360
散列连接数 =0
散列循环数 =0
散列连接溢出数 =0
小散列连接溢出数 =0
后阈值散列连接数(共享内存) =0
OLAP功能数目 =0
OLAP功能溢出数目 =0
活动OLAP功能数 =0
通过下面命令收集缓冲池的数据:
db2=>get snapshot for bufferpools on <dbname>
缓冲池数据逻辑读取次数 =1801103
缓冲池数据物理读取次数 =59768
缓冲池索引逻辑读取次数 =6908802
缓冲池索引物理读取次数 =7813
缓冲池总计读取时间(毫秒) =80081
缓冲池总计写入时间(毫秒) =162749
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。