DB2数据库-性能测试监控
一.DB2数据库介绍
1. DB2架构介绍
概要介绍
DB2是IBM公司研发的关系数据库产品,目前广泛应用于金融、通信、交通等行业,在IBM随需应变的战略体系中扮演着重要角。因为川农信属于金融行业,因此也在使用DB2,其版本为v9.7,所以在这里介绍一些9.7版本的新特性。
支持索引压缩、临时表数据压缩和xml压缩,更加降低了存储空间成本。
支持内联大对象。
在线表迁移功能。
支持实时表字段更改。
在性能监控方面DB29.7有了极大增强,新的监控模型不仅可以快速出问题瓶颈,而且对系统的影响非常小。特别是对锁的监控,通过新的Locking Event Monitor可同时监控死锁、锁等待和锁超时。
移植性增强。
HADR备机可读。
三种常用架构简介
当前的应用系统主要分为两类:联机事务处理(OLTP)和联机分析处理(OLAP)。OLTP主要执行日常的事务处理,比如银行存取款、商场购物等,它的主要特点是对响应时间要求高,数据量一般较小,并发多,面向应用。OLAP主要指数据仓库、决策分析类系统,主要特点是数据量大,对实时性要求不高,面向主题。
针对这两种典型的系统,DB2提供了很好的支持。对于OLTP系统和数据量较小的OLAP系统,可以采用单分区架构。
但是有一些OLAP系统,比如国内一些通信公司和电力公司的经营分析系统,包含的数据超过几十TB,一台机器的处理性能根本无法满足要求。这时,可考虑DB2的多分区架构,即Shared Nothing架构。这种架构的优点就是能够充分利用系统资源,将一个大型的查询分解成若干个小查询并行运行在不同的系统中。由于每一个分区只能够访问自己分区的数据,当查询数据需要关联时。需要在分区中交换必要的数据,分区之间使用一种叫做FCM(Fast Communication Manager)的通信机制。这种架构对系统设计人员要求较高,一定要充分理解优化器与系统访问数据的规则,并且设计很好的分区键,才能够尽可能避免分区间大量的数据交换。
与Share-Nothing相对的另外一种常见的架构是Share-Disk。Share-Disk架构允许所有机器都可以访问全部的数据,好处是管理起来相对方便,而且任意一台机器宕机后,只要存储部分不出问题,其他机器上的系统可以照样访问数据。Share-Disk的设计目标主要是提供高可用性,一般用于OLTP系统。
2. 主要模块介绍
上图描述了DB2的进程模型,长方形代表处理进程,椭圆形代表处理线程,DB2的主进程是db2sysc,在这个处理进程下有许多线 程,最主要的线程也是叫db2sysc,这个主要的线程派生了其他子线程。当一个远程的应用程序比如采用sql connect语句链接服务器时,通讯协议的远程将接收这个请求,并联系db2agent,agent是一个代表DB2实现一些小操作的处理程序, 当发出请求的应用程序是本地的,也就是和DB2服务器在同一服务器上,如果
不在同一个服务器上,那么采用db2tcpcm处理本地请求,如果在一台服务器 上采用db2ipccm线程来处理请求。如果发生本地和异地并行的情况,db2agent会生成其他线程的代理db2agntp线程。其他的线程如 db2pfchr、db2loggr、db2dlock它们应用到不同的目的。
3. 主要进程介绍
db2sysc (Linux) db2syscs (Win)
DB2的主系统控制器或者引擎,对于一个完整的分区其中只有一个包含多线程的主引擎进程。所有的引擎可以分 派单元都是进程中的线程。没有这个进程数据库服务器是无法工作的。
 
db2acd
主管运行状况监视器和自动维护实用程序的自主计算守护程序。此进程以前称为db2hmon
Db2wdong
DB2的看门狗,是db2sysc的父进程。如果db2sysc集成非正常终止,它将清除所占用的资源。
Db2vend
在主 进程之外的围栏进程,所有db29.5的第三方代码都在这 个进程中运行。
Db2fmp
围栏进程,在防火墙外运行用户的存储程序 和用户定义函数代码。此进程代替了db2老版本中的db2udf和db2dari进程。
4. 主要线程介绍
Db2sysc
系 统控制线程。负责实例的启动关闭和管理正在运行的实例。
Db2tcpcm
tcoip交互
Db2agent
协调代理代表应用程序实现数据库操作
Db2agntp
如果intra-parallel的属性是yes,那么会产生活动的副代理。它会为应用程序执行数据库操作。Dbagent将协调不同的db2agntp副代理的工作。
Db2pfchr
db2异步io数据读取
Db2pclnr
db2异步io数据写入
二.DB2数据库配置参数
db2数据库sql语句收集性能测试项目中DB2数据库一些参数的最佳配置或DB2的推荐配置。
1.监控开关参数
Db2数据库默认情况下,监控参数一部分是处于关闭状态的,因此在需要监控数据库时,需打开部分监控,命令如下:
查看当前监控开关配置情况:
Db2 get dbm cfg    on为开启 off为关闭
修改某项开关的配置:
Db2 update dbm cfg using DFT_MON_BUFPOOL = on    --开启缓冲池的监控
Db2 update dbm cfg using DFT_MON_BUFPOOL = off  --关闭缓冲池的监控
建议:因监控需消耗系统资源,尽量减少对数据库性能的影响,建议开启需要监控项的监控开关。
锁事件提醒级别查看及配置:
db2 get db cfg |grep MON_LCK_MSG_LVL  返回当前数据库的配置,其中
0 为不记录信息
1 为仅记录错误
2 记录服务和非服务错误
缺省是3,记录db2的错误和警告
4 是记录全部信息,包括成功执行的信息
修改返回信息级别:
Db2 update db cfg  MON_LCK_MSG_LVL using 3  --将级别改为3
2.影响数据库性能参数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。