缓冲池的自动调整问题

创建了个缓冲池给应用使用: db2 CREATE BUFFERPOOL BUF8K_AS IMMEDIATE SIZE 10000 AUTOMATIC PAGESIZE 8K
数据库版本是DB2 V9.7,服务器内存有16G,数据库的参数都是默认设置,没有人为调整过。

在压力测试的过程中,发现数据库服务器的IO BUSY%一直都是100%,SQL语句监控方面发现很多语句都存在不小的POOL_DATA_P_READS。但是这些SQL涉及的表是单表(3张表),数据量也在10万笔以内,按照设想,这些点数据量应该都可以被缓存到缓冲池中而不用每次执行都从磁盘上面读取。


用db2mtrk -i -d -v查看这个缓冲池的内存,发现仅有20M左右,而数据库服务器当前FREE的内存还有6G左右。


然后取消这个缓冲池的自动调整属性,直接将大小设置为1G,再执行压力测试,数据库服务器的IO BUSY%就降到30%以下,回到正常水平。


现在的问题是:DB2的缓冲池已经被建成了自动调整的,DB2的内存也都是自动调整的,数据库也有重启过,为啥缓冲池就不会自动把内存调大点呢,
自动调整大小仅为20M,然后一直在从磁盘读数据,把数据库服务器的IO搞崩了。这是什么情况呢,难道DB2的自动调整不靠谱?
参与10

9同行回答

qingsong3333qingsong3333数据仓库工程师IBM
如果诚如题主所说,缓冲池是做了自动调整的,只不过调整小了。10000 * 8K = 80 MB, 您查看结果只有20M。 在缓冲池命中率如此高的情况下,I/O还那么高,是不是有LOB字段,或者有其他应用在用I/O吗?...显示全部
如果诚如题主所说,缓冲池是做了自动调整的,只不过调整小了。
10000 * 8K = 80 MB, 您查看结果只有20M。

在缓冲池命中率如此高的情况下,I/O还那么高,是不是有LOB字段,或者有其他应用在用I/O吗?收起
IT咨询服务 · 2015-05-29
浏览1186
richard_macyrichard_macy数据库管理员macys
回复 7# xmherz    你这是过奖了。显示全部
回复 7# xmherz


   你这是过奖了。收起
零售/批发 · 2015-05-22
浏览1168
xmherzxmherz测试工程师中软海晟
回复 6# qingsong3333   用的是DB2 9.7,默认是开启的,没有关闭Self tuning memory                    (SELF_TUNING_MEM) = ON显示全部
回复 6# qingsong3333

  用的是DB2 9.7,默认是开启的,没有关闭

Self tuning memory                    (SELF_TUNING_MEM) = ON收起
软件开发 · 2015-05-21
浏览1188
xmherzxmherz测试工程师中软海晟
回复 5# db2china2 我这个环境是新搭建的,不过也搭建了半个月了,搭建过程是先创建缓冲池,然后创建表空间(指定创建的缓冲池),然后创建表。这半个月来也陆陆续续有在做一些压力,但是没发现有什么明显异常的地方,就是这两天压2个模块的时候发现那个IO BUSY%老是百分百,跟踪定位后才...显示全部
回复 5# db2china2

我这个环境是新搭建的,不过也搭建了半个月了,搭建过程是先创建缓冲池,然后创建表空间(指定创建的缓冲池),然后创建表。这半个月来也陆陆续续有在做一些压力,但是没发现有什么明显异常的地方,就是这两天压2个模块的时候发现那个IO BUSY%老是
百分百,跟踪定位后才发现可能是缓冲池大小不够。
我用SELECT * FROM sysibmadm.BP_HITRATIO; 查看BUF8K_AS的命中率,居然还一直稳居99%以上。


我们的其它环境一直都是用的自动调整的缓冲池,都没有出现类似这种问题,这次是首次碰到,以前一直觉得DB2的自动内存调整挺
可靠的,就没有过多地去干预它。收起
软件开发 · 2015-05-21
浏览1224
qingsong3333qingsong3333数据仓库工程师IBM
SELF_TUNING_MEM 这个参数你调整为ON了吗?显示全部
SELF_TUNING_MEM 这个参数你调整为ON了吗?收起
IT咨询服务 · 2015-05-21
浏览1192
db2china2db2china2技术经理DB2咨询服务
回复 1# xmherz 创建BUF8K_AS后,是否修改对应的表空间与此BP关联以生效呢?显示全部
回复 1# xmherz
创建BUF8K_AS后,是否修改对应的表空间与此BP关联以生效呢?收起
IT咨询服务 · 2015-05-21
浏览1156
DB-TrendSetterDB-TrendSetter联盟成员数据库架构师公司
自动调整具有滞后性,建议把主要缓冲池调整到物理内存的50%以上。显示全部
自动调整具有滞后性,建议把主要缓冲池调整到物理内存的50%以上。收起
电信运营商 · 2015-05-21
浏览1313
xmherzxmherz测试工程师中软海晟
回复 2# shadowflare    谢谢你的回复,不过我是压了大半天了,也试过在压力之后重启数据库看看仍然没有起色,后面去看了我们另外一个压力环境,数据库参数也都是自动调整,不过那边用的是DB2自带的4K的IBMDEFAULTBP缓冲池,用 db2mtrk -i -d -v 查看缓冲池内存自动调整到...显示全部
回复 2# shadowflare


   谢谢你的回复,不过我是压了大半天了,也试过在压力之后重启数据库看看仍然没有起色,后面去看了我们另外一个压力环境,数据库参数也都是自动调整,不过那边用的是DB2自带的4K的IBMDEFAULTBP缓冲池,用 db2mtrk -i -d -v 查看缓冲池内存自动调整到了1.5G左右。收起
软件开发 · 2015-05-21
浏览1201
shadowflareshadowflare软件开发工程师交通银行
自动调整是根据前面一段时间的使用状况缓慢调整参数的,不能应付突然增长的内存需求。压力测试中不要使用自动调整。显示全部
自动调整是根据前面一段时间的使用状况缓慢调整参数的,不能应付突然增长的内存需求。
压力测试中不要使用自动调整。收起
银行 · 2015-05-21
浏览1199

提问者

xmherz
测试工程师中软海晟

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-05-21
  • 关注会员:1 人
  • 问题浏览:5989
  • 最近回答:2015-05-29
  • X社区推广