- 论坛徽章:
- 0
|
谢谢大家!
谢谢大家的热心支持! 但是问题还没有得到有效解决!
说明以下几点:
1. paging 逻辑卷原来仅有默认安装的hd6,大小为12G(和物理内存一样大),在高峰时期的占用率依旧很小。后在hdisk2(磁盘阵列)上增加了一个相同大小的paging LV,但没有任何效果。在访问高峰期间连续观察,发现paging 分区的使用率很低,上传的那个图中的17%左右的使用率非常罕见。可能是抓图的时候突发的。
2. 大家都关心的buffer pool的问题。根据IBM网站的资料:
http://www.ibm.com/developerwork ... 508chong/index.html
@/app/loan >db2 "select NPAGES,PAGESIZE,BPNAME from syscat.bufferpools"
NPAGES PAGESIZE BPNAME
----------- ----------- --------------------------------------------------------
300000 4096 IBMDEFAULTBP
1 record(s) selected.
Windows 上 IBMDEFAULTBP 的默认大小是 250 个页面,而在 UNIX? 平台上,它就是 1000 个页面。当 NPAGES 的值为 -1 时,缓冲池大小就是由数据库配置中的 BUFFPAGE 参数确定的。
从上面可以看出,我的bufferpool的大小应该是30000*4K =1.2G ,应该说不能算小了。
(db2 get db cfg for database 命令看到的BUFFPAGE的值为1000,但由于NPAGES不为-1,所以这个参数应该没有起作用)。
3. 磁盘阵列的容量为550GB, 做RAID5. 是前几年购买的,磁盘的个数应该不会低于5块。
不过我看到数据库的每个tablespace 只有一个container,不过IBM网站的资料说对于磁盘阵列环境可以只划分一个container。不知道是否确切?
4. bufferpool的命中率基本上在97%以上。
5.
((异步池数据页读 + 异步池索引页读) / (缓冲池数据逻辑读 + 缓冲池索引逻辑读)) * 100%
此参数根据计算大约在5%~12%左右,不知道算不算“太小”?
此原因有三个:
工作负载读写单行,因此它无法利用预取。 (暂不讨论)
为数据库配置的预取器太少。 (可能性较大,但不知如何修改此参数)
数据库中的表空间仅仅配置了一个容器,以致无法进行预取。(目前确实是每个表空间只有一个container,但是磁盘阵列环境建议只用一个container? )
6. IO清洗器
异步页面清洗器的有效性是由异步数据和索引页的写比率进行测量的。如果下列两个条件都成立,那么就可以减少异步页面清洗器的数目(NUM_IOCLEANERS):
缓冲池数据写约等于异步池数据页写。
缓冲池索引写约等于异步池索引页写。
如果下列条件中有一个成立,就应增加该参数:
缓冲池数据写远远大于异步池数据页写。
缓冲池索引写远远大于异步池索引页写。
根据观察的情况,缓冲池数据写约等于异步池数据页写,与 缓冲池索引写约等于异步池索引页写 这两个条件都满足,(IO server =8,IOcleaner =4 ),将IOcleaner 修改为2后系统没有任何改善,并且上述两个条件依旧满足。 |
|