查看: 4830|回复: 4

db2内存功能配置深入分析 再回首 - 1

[复制链接]
论坛徽章:
0
跳转到指定楼层
1#
发表于 2008-8-24 11:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
再回首是我很喜欢的一首歌。那个时候我正青春萌动,血液沸腾,诗性正浓。

每天的快乐就是写点歪诗给女生看,然后看到女生围在一起看,心中很是享受。

对,我少年的时候就是好色,虚荣,且好斗。

哈哈哈哈,我主动承认,你们还有啥好拍的?



这个文章起这个名字是因为这个关于db2的内存问题我的是已经再回首过N次了。





db2内存这个事情也是我每次讲课都要重点讲解的,大家都偏执地认为性能就会跟内存有关,似乎内存,性能问题立刻迎刃而解。

在如今的db2中,或者在如今的系统中,内存的设置从来就不是性能问题的关键,或者对性能问题的影响只会在10%左右。



当然,我再重申,影响性能问题的根本和关键因素是数据库的架构和sql设计。

只是在这2个方面,遇到的制度阻扰,人的观念和行为惯性,协调难度,要大很多,而国内的软件商总是在用户面前矮一头,说话不敢大声,

更不敢或者没有信心或者没有底气去跟用户谈这方面的事情。



事实是什么呢?

事实是用户大都是希望事情能够做好,系统搁在那里3年5年不出任何状况,用户愿意大家把事情做得更好,

问题是用户有用户的表达方式和语言模式和行为习惯。

软件商的项目经理总是看不透其实用户也是人,用户也需要有愉悦的交流和沟通,用户也需要有朋友,用户也需要有个NB的专家让他们可以依赖。

我们的项目经理们总是把自己的无穷的内心摁死在他自己的名片定义上了。



很多场合,很多事情,我是软件商或者承包商请去的,按理说我不能讲话,至少不能随便讲话,但是很多次我在旁边看不下去,

承包商的项目经理抖抖索索,没有信心,知识贫乏,无法提供好的思路和方案给用户,



更重要的是他们根本不了解用户实际要什么,用户实际要达到什么效果就可以了就可以请我们喝酒然后大家散伙了,



目前的中国的用户的心理基本都是希望迅速满足他们的指定it需求,不要让他们跟着我们陪着我们辛苦,他们不想辛苦不想熬夜,他们更不想一个项目

来回倒腾搞了几次还搞不好,那样他们心里会很惊慌和没有信心和惶恐。

所以,想目前的精心准备,是永远必要的和重要的。



我们要在用户面前表现出来的就是像风一样刮过键盘,然后项目结束了,所有验收很顺利,用户心理暗想:总算遇上牛人了,这下踏实了。



所以很多时候,我都按耐不住,挑头组织承包商用户开发商把项目会一开,然后开工。





db2的内存的信息捕获通常是通过snapshot来获得,这在oracle中也是一样,一个动态的时间点捕获一堆消息,然后自己再想办法或者做工具来分析。



db2mtrk



实际上是一种轻量级的snapshot,而且这个工具它将内存的信息单独提纯出来了,总比我们痛苦的研究snapshot文档要轻松很多。



我们通常讨论是db2的内存是3个层面的。

instance

database

agent



实例默认已经打开了所有的这些监控开关,所以我们不再需要去打开新的内存监控开关了。



db2mtrk



这个工具提供了完整的instance,db,agent的内存信息,同时显示了各个存储池的具体的分配信息。



当前大小

最大允许尺寸就是hard limit

最大值,就是高水平线

内存类型就是内存用途

分配内存池的代理



在分区数据库当中,特定分区的db2mtrk只能返回当前分区的内存信息。



db2mtrk的一些options参数

-i 实例内存

-d db内存

-p 私有代理内存

-w 当前尺寸

-m 最大允许尺寸

-v

-r 就是每隔时间间隔的反复执行



我其实是很不喜欢来写任意命令的语法和参数,我认为所有的这些都是固定的阅读工作,没有什么技术含量和技术技巧的,

我觉得一个好的文章应该是生动地去说明工作机制和原理。





bph

我们在使用db2mtrk命令的时候可能会发现一堆缓存堆(bufferpool heap),那是因为每个数据库,db2会因为一些内部环境的需要而创建了4个隐藏的bufferpool,

这四个隐藏的缓冲池相当于地下党,我们不能知道他的存在,但是他们确实存在为db2的工作默默服务,

有个显式的bufferpool就是我们都知道的ibmdefaultbp,

这样我们发现一个db创建了之后,我们在用db2mtrk命令的时候我们就会发现有5个bufferpool heap。



当然,db2也会有自己的gui工具来管理它的内存,但是我是没有这个习惯来使用它





Db2内存的基本模型







当下列事件发生的时候,那么db2会为dbm的每个instance分配内存



Db2start

分配dbm范围的全局内存



数据库的激活

分配数据库范围的全局内存



应用程序的连接

分配应用程序组的内存使用



代理的创建

创建代理的私有内存



缓冲池的单位依然还是page。

但是在底层,当有各种组件对内存有请求的时候,db2是以block为单位从oss那里在pool的范围内来请求内存的。



在早期的db2中,缓冲池是叫logically bound。

我对这个词一直有点不知道该如何理解。

叫逻辑空间地界?

对于bound我一直有点迷糊。所以遇到这种概念的时候我都是迷迷糊糊使用英文单词,可怜我的学员睁大迷茫的双眼看着我,真不好意思。

logically bound,在db2里面的意思就是设置好的尺寸大小就是该存储池的最大尺寸,当前使用的大小是已经分配的底层内存block数量。

但是这样的管理会产生不少地址碎片,显然这种模式的内存管理不是什么好办法,不是长久之计。

所以db2在后来的版本里面将这样的管理改成从地址空间按需分配。

这样就避免了碎片的问题。





应用程序组的内存使用



首先每个应用程序都会从共享内存中分得自己的内存



以下是配置参数中的关于应用程序组的内存

Appgroup_mem_sz

是说从共享内存中分得的给该应用程序组的内存



Groupheap_ratio

是说可以为共享堆所分得的应用程序组共享内存的最大百分比



App_ctl_heap_sz

是说为组里面的每个应用程序分得的控制堆的内存大小

原文链接:  http://www.ituren.org.cn/html/jishusuibi/200806/24-88.html
论坛徽章:
4
2014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:082015年新春福章
日期:2015-03-04 14:53:162015年新春福章
日期:2015-03-06 11:58:39
2#
发表于 2012-12-12 16:14 | 只看该作者
真的是好文章啊,支持你!

使用道具 举报

回复
论坛徽章:
1
2013年新春福章
日期:2013-02-25 14:51:24
3#
发表于 2012-12-15 13:52 | 只看该作者
顶一下!

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
186
授权会员
日期:2008-07-27 22:25:202014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14版主4段
日期:2015-02-26 02:21:03慢羊羊
日期:2015-03-04 14:51:35
4#
发表于 2012-12-27 17:18 | 只看该作者
支持原创!!

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
186
授权会员
日期:2008-07-27 22:25:202014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14版主4段
日期:2015-02-26 02:21:03慢羊羊
日期:2015-03-04 14:51:35
5#
发表于 2013-1-7 09:29 | 只看该作者
zhiyuanyule 发表于 2012-12-25 10:18
内容主要包括B2的基础架构、HA集群、...监控分析6.3 精通业务(http://www.zhiyuanyule.com/
http://www. ...

Thanks for sharing!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表