缓存池:

冲池是内存中的一块区域,db2会将用到数据放到缓冲池中提高性能。缓冲池太小,每次查询仍然要到磁盘中操作,达不到缓冲的效果。缓冲池太大,超出操作系统管理的限制,会导致数据库无法连接的错误。

缓冲池是通过表空间与数据表发生联系的,数据表存放在指定的表空间中,每个表空间又有指定的缓冲池。因为每张数据表存储的数据量都不同,一般根据每条记录存放的最大数据量,我们会为数据表分别指定4k-32k不同的表空间来存放,以达到优化存储和性能的目的,缓冲池也是类似。这个一般在创建数据库时就会分配好了。

 案发预警:

应用系统程序:一般是登录、首页、待办列表等数据量比较大的模块,响应时间长,耗时数秒到数十秒都有可能。有时候是用户访问高峰期慢,下班时间又比较正常。  操作系统上的表现:一般是中间件服务器(WAS)系统正常,CPU和IO占用不会持续超过50%,系统运行进程不会有持续的等待。数据库服务器则非常繁忙,CPU占用持续在50%以上,往往会达到持续90%左右,IO占用可能不高。从系统层面判断,性能瓶颈出在数据库上

调优思路:

db2的性能和操作系统、锁、缓冲池、索引等参数,以及SQL的写法都有很大关系,受限于个人认识,这里主要介绍缓冲池和索引的调优方法。 
缓冲池的调整比较简单,一般可以先调整缓冲池,若效果不明显,则再调整索引和sql

切换实例用户id  查看缓存池相关内容
su db2inst1 db2 connect to db //查看缓存池信息
db2 "select BPNAME,NPAGES,PAGESIZE from syscat.bufferpools" 表空间名称(TableSpaceName)
使用的缓冲池名称(BufferpoolName),表空间的页大小(TBSPageSize)
缓冲池的数量(BufferpoolPages),缓冲池的页大小数据(BufferpoolSize)信息

  

查看mv_workitem表所在表空间和缓冲池信息,一般“MV_”开头的表使用的缓冲池是重点关注对象:

db2 "select TABSCHEMA TableSchemaName, TABNAME TableName, t.TBSPACE TableSpaceName,b.BPNAME BufferpoolName, b.NPAGES BufferpoolPages,
b.PAGESIZE BufferpoolSize
from
SYSCAT.TABLES t
,SYSCAT.BUFFERPOOLS
b,SYSCAT.TABLESPACES s
where
tabname='MV_WORKITEM'
and
s.BUFFERPOOLID=b.BUFFERPOOLID and t.TBSPACE=s.TBSPACE" //注意TableSchemaName、BufferpoolName、BufferpoolSize
//开启缓冲池监控器:
db2 update monitor switches using bufferpool on
//在应用系统重现问题后,检查缓冲池的快照:
db2 get snapshot for bufferpools on pzbdw|grep -i buffer|more

  

检查db2缓冲池快照,重点关注data和index的逻辑/物理读写数据,一般来说在缓冲池足够的情况下,physiical reads值趋进于0,而logical和reads值则很大,情况反之就是不够用有问题,例如一下案例是xxx系统的32k缓冲池快照:

 Bufferpool Snapshot
Bufferpool name = BF32
//Buffer pool data logical reads = 493907
//Buffer pool data physical reads = 78
Buffer pool temporary data logical reads = 129662
Buffer pool temporary data physical reads = 0 Buffer pool data writes = 1
//Buffer pool index logical reads = 10302
//Buffer pool index physical reads = 122 //如果发现物理和逻辑读的值相差不大,则使用下面的命令调整缓冲池大小,一般可以每次增加2000左

  

db2 ALTER BUFFERPOOL BF32 size 18000

缓冲池的调整是立即生效的,不需要重启数据库。需要注意的是,缓冲池的大小受物理内存和操作系统限制,一般32位操作系统下,总的缓冲池大小不能超过1G。如果在这个限制下,不能满足所有缓冲池都达到物理读趋近于0,则考虑尽可能保证用户体验影响较大的(MV、UM等开头的表使用的)缓冲池大小。理论上64位操作系统可以管理更大的内存空间,因此可以获得更好的性能。如下所示缓冲池,总大小为:

1x4+4x4+3x8+2.5x16+2.5x32+1x32=226M

重复以上步骤再次收集快照信息:

db2 update monitor switches using bufferpool off
db2 update monitor switches using bufferpool on
db2 get snapshot for bufferpools on pzbdw|grep -i buffer|more //由于缓冲池的监控器收集的是自启用以后的数据,为获得调整后的准确情况,应关闭后重新打开,再
次收集快照信息

  

  

db2缓冲池调优的更多相关文章

  1. DB2性能调优

    1.更新统计信息 --更新数据库所有表统计信息 --连接到数据库(-v选项,表示要回显命令,以下同) db2 -v connect to DB_NAME --查看是否收集过统计信息,什么时候更新的   ...

  2. db2 sql调优

    当我们发现某个SQL语句执行很慢时,可以通过查看它的访问计划来定位原因,如是否执行了合适的索引.是否采用了正确的连接方法等.但是我们发现很多用户对访问计划的生成和解释工具的使用存在很多疑惑,本文通过一 ...

  3. DB2调优摘要

    感谢原博主 http://yishueitian326.blog.163.com/blog/static/2858637520106695733719/ 性 能是关系到随需应变型应用程序成功与否的关键 ...

  4. db2调优

    系统上线两个月左右,请IBM工程师对数据库进行了一次调优,主要收获感觉有以下几点: 1,应用服务器一定要与数据库服务器分开 2,如果存在多个数据库,一定要硬盘分开(io忙) 3,每个数据库的数据与日志 ...

  5. (转)调优 DB2 UDB v8.1 及其数据库的最佳实践

    原文:https://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0404mcarthur/index.html 简介 性能是 ...

  6. 实例详解 DB2 排序监控和调优

    实例详解 DB2 排序监控和调优http://automationqa.com/forum.php?mod=viewthread&tid=2882&fromuid=2

  7. (转)Db2 备份恢复性能问题诊断与调优

    原文:https://www.ibm.com/developerworks/cn/analytics/library/ba-lo-backup-restore-performance-issue-ju ...

  8. 【转】oracle内存分配和调优总结

    转自 http://blog.itpub.net/12272958/viewspace-696834/ 一直都想总结一下oracle内存调整方面的知识,最近正好优化一个数据库内存参数,查找一些资料并且 ...

  9. mysql性能瓶颈分析、性能指标、指标搜集方法与性能分析调优工具

    本文主要讲解mysql的性能瓶颈分析.性能指标.性能指标信息的搜集工具与方法.分析调优工具的使用. 文章尚未完成. 性能瓶颈: 慢.写速度比读速度慢很多  主要的性能指标: 访问频度, 并发连接量, ...

随机推荐

  1. allure 这么高大上的测试报告环境,5 分钟搞定

    allure 的测试报告是老板喜欢的样子.如果能用上 allure,干嘛还选择其他的测试报告类型呢?python 的 pytest 单元测试框架有 allure 的插件,可以很方便的在 python ...

  2. 【vue】iView-admin2.0动态菜单路由【版2】

    依照iView-admin2.0动态菜单路由[版1] 归纳几个节点动态路由获取方式2 ——> easymock假数据 ——> 数据转组件处理.addRoutes ——> localS ...

  3. HTTP,FTP异常码大全【转载】

    HTTP 400 - 请求无效HTTP 401.1 - 未授权:登录失败HTTP 401.2 - 未授权:服务器配置问题导致登录失败HTTP 401.3 - ACL 禁止访问资源HTTP 401.4 ...

  4. 使用SQLyog对mysql数据库的数据结构进行导出、导入

    主要分为两个步骤: 一.使用SQLyog对mysql数据库的数据结构进行导出 1.鼠标右键选择需要导出数据结构的数据库——>点击[备份/导出]——>点击[备份数据库,转储到SQL....] ...

  5. 这才是最完美SSD:性能满血发挥 万里挑一

    固态硬盘同质化日益严重,不同品牌的固态盘想要一决高下就只有靠品牌口碑与做工硬实力了. 最近影驰对他们的ONE系列固态硬盘产品进行了一波更新,推出了多种容量的ONE PCIe M.2 SSD,今天我们就 ...

  6. ubuntu 添加新用户并赋予root权限

    1 sudo adduser wolbo 2 sudo vim /etc/sudoers root ALL=(ALL) ALLwolbo ALL=(ALL) ALL wolbo ALL=(ALL) N ...

  7. 一、Linux 设备驱动介绍及开发环境搭建(续)

    1.2.6 uboot 编译安装 嵌入式 bootloader 的功能: 功能类似于 PC 的 BIOS.硬件检测是否正常 加载操作系统镜像到 RAM 设置不同的启动方式 常见的启动方式: NOR/N ...

  8. DECLARE_GLOBAL_DATA_PTR

    DECLARE_GLOBAL_DATA_PTR在arch/arm/include/asm/global_data.h中定义 #include <asm-generic/global_data.h ...

  9. DataWorks参数配置

    https://help.aliyun.com/document_detail/30281.html?spm=a2c6h.13066369.0.0.7bef69daI5ajKt

  10. QT程序在发布的时候应注意的地方

    ---恢复内容开始--- 我们用QT开发好的应用程序,如果要发布到其他计算机上运行怎么办呢?我们在用VC编程时,单独运行编译好的可执行文件时,经常会发现提示缺少动态库.用QT编程也不例外,在一定程度上 ...