DB2共享内存和扩展存储 [英] DB2 shared memory and extended storage

查看:88
本文介绍了DB2共享内存和扩展存储的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,


我对DB2如何使用共享内存感到非常困惑,我想知道是否有人可以为我澄清问题,请?


我们在AIX 4.3.3下运行32位DB2 V7.2 FP9,机器上有64

Gb内存和一个非分区数据库使用扩展的

存储并启用内部并行。


我一直在尝试更改各种参数尝试

使我的缓冲池尽可能大,但我不能使它更大

超过700 Mb并仍然可以激活数据库。


从我在手册和互联网上看到的内容我相信,或者
DB2应该能够使用最多7个共享内存段,这是
大约1.75 Gb的内存,用于除了

代理私有内存之外的所有内容(即DBM共享内存+ Db全局内存+

应用程序全局内存+代理/应用程序共享内存)。那是

是否正确?


再次从我读过的内容看来:


DBM分享了memory =监视堆(mon_heap_sz)+审计缓冲区大小

(audit_buf_sz)+全局控制块(这有多大?)+ FCM

连接条目(fcm_num_connect)+ FCM消息锚

(fcm_num_anchors)+ FCM请求块(fcm_num_rqb)+ FCM

缓冲区(fcm_num_buffers)+ FCM控制块(有多大?)+ Something

为数据库代理,手册并不清楚是什么。





最大数据库全局内存=缓冲池大小+ Locklist(locklist)+

数据库堆(dbheap)+实用程序堆大小(util_heap_sz)+包

缓存(pckcachesz)+扩展内存缓存(有多大?)





应用程序全局内存= app_ctl_heap_sz





代理/应用程序共享内存=应用程序支持层

堆(aslheapsz)+ Clie nt I / O块(rqrioblk)

添加所有这些东西给我总共940Mb,它增加了

全局控制块,FCM控制块,扩展内存缓存并且

代理商的东西应该总共1.75 Gb。


所以,如果最后四件事使用大约800 Mb的内存或者我有

错过了什么?

手册还说明数据库全局内存受到numdb参数的影响但是我已经尝试过更改这个从8到1没有

影响使用的总共享内存。


在一个稍微相关的说明中,手册中有一条评论

扩展存储段(ESTORE_SEG_SZ)的大小正在运行

系统相关但我无处可寻找任何关于该参数的合理值

值的信息是。我发现使用264个页面的
16000个页面每个使用的共享内存比64个64000个页面每个b $ b页面都多,但我不知道为什么或者如果它'最好使用很多

小段而不是几个大段!


另外,我怀疑我没有使用FCM(DB2_FORCE_FCM_BP是如果四个FCM参数设置为

非零值,我是否仍然为FCM分配内存?


干杯,


Jeremy Goodall

解决方案

杰里米,我只想快速回复一下还有一个!

您定义的段数应该等于定义为使用Ext的BP的数量

。存储。

分段的大小是以下结果:

计划用于Estore的存储量除以否。细分。


对于其他人来说,似乎你有正确的方法,但我想进一步看看



HTH,皮埃尔。


Jeremy写道:

大家好,

我对DB2如何使用共享感到非常困惑记忆,我想知道是否有人可以为我澄清问题?

我们在AIX 4.3.3上运行32位DB2 V7.2 FP9在64 G / Gb的机器上运行使用扩展的存储和启用内部并行的单个非分区数据库的内存。

我一直在尝试更改各种参数以尝试制作我的缓冲池尽可能大,但我不能比大约700 Mb更大,仍然可以启动数据库。

从我在手册中读到的内容在互联网上我相信DB2应该能够使用最多7个共享内存段,这大约是1.75 Gb的内存,用于除了代理私有内存之外的所有内容(即DBM共享内存+ Db全局内存+
应用程序全局内存+代理/应用程序共享内存)。这是否正确?

再次从我读过的内容看来,似乎是:

DBM共享内存=监控堆(mon_heap_sz)+审计缓冲区大小
(audit_buf_sz)+全局控制块(这有多大?)+ FCM
连接条目(fcm_num_connect)+ FCM消息锚
(fcm_num_anchors)+ FCM请求块(fcm_num_rqb)+ FCM
缓冲区(fcm_num_buffers)+ FCM控制块(有多大?)+数据库代理的东西
,手册并不清楚是什么。



最大数据库全局内存=缓冲池大小+锁定列表(锁定列表)+
数据库堆(dbheap)+实用程序堆大小(util_heap_sz)+包
缓存(pckcachesz)+扩展内存缓存(有多大? )



应用程序全局内存= app_ctl_heap_sz


代理/应用程序共享内存=应用程序支持层
堆(aslheapsz)+客户端I / O块(rqrioblk)

添加所有这些东西给我总共940Mb whi ch添加到全局控制块,FCM控制块,扩展内存缓存和代理商的东西应该总共1.75 Gb。

那么,应该最后四件事使用大约800 Mb的内存或者我错过了什么?

手册还说明数据库全局内存受numdb参数的影响但是我已经尝试将此值从8更改为1,对所使用的总共享内存没有影响。

在一个稍微相关的说明中,手册中有一条评论
大小扩展存储段(ESTORE_SEG_SZ)依赖于系统操作,但我无法找到有关该参数的合理值的任何信息。我发现使用264个页面的16000个页面每个使用的共享内存比66个64000页面的每个页面都多,但我不知道为什么或者是否更好地使用大量<小部分而不是几个大部分!

此外,我怀疑我没有使用FCM(没有设置DB2_FORCE_FCM_BP),我是否仍在为FCM分配内存四个FCM参数设置为非零值?

干杯,

Jeremy Goodall




-

Pierre Saint-Jacques

IBM DB2 Cerified Solutions Expert - 管理

SES顾问公司


"杰里米" < JE **** @ home.co.uk>在消息中写道

新闻:i2 ******************************** @ 4ax.com ...

大家好,

我对DB2如何使用共享内存感到非常困惑,我想知道是否有人可以为我澄清问题,请问?

我们在AIX 4.3.3下运行32位DB2 V7.2 FP9,在具有64 G / g Gb内存的计算机上使用扩展的存储空间和一个非分区数据库并启用了内部并行功能。

我一直在尝试更改各种参数,以使我的缓冲池尽可能大,但我不能让它更大
大约700 Mb并且仍然可以激活数据库。

从我在手册和互联网上看到的内容我相信DB2应该能够最多使用7个共享内存段,大约1.75 Gb内存,用于除了代理私有内存之外的所有内容(即DBM共享内存+ Db gl) obal memory +
应用程序全局内存+代理/应用程序共享内存)。这是否正确?

再次从我读过的内容看来,似乎是:

DBM共享内存=监控堆(mon_heap_sz)+审计缓冲区大小
(audit_buf_sz)+全局控制块(这有多大?)+ FCM
连接条目(fcm_num_connect)+ FCM消息锚
(fcm_num_anchors)+ FCM请求块(fcm_num_rqb)+ FCM
缓冲区(fcm_num_buffers)+ FCM控制块(有多大?)+数据库代理的东西
,手册并不清楚是什么。



最大数据库全局内存=缓冲池大小+锁定列表(锁定列表)+
数据库堆(dbheap)+实用程序堆大小(util_heap_sz)+包
缓存(pckcachesz)+扩展内存缓存(有多大? )



应用程序全局内存= app_ctl_heap_sz


代理/应用程序共享内存=应用程序支持层
堆(aslheapsz)+客户端I / O块(rqrioblk)

添加所有这些东西给我总共940Mb whi ch添加到全局控制块,FCM控制块,扩展内存缓存和代理商的东西应该总共1.75 Gb。

那么,应该最后四件事使用大约800 Mb的内存或者我错过了什么?

手册还说明数据库全局内存受numdb参数的影响但是我已经尝试将此值从8更改为1,对所使用的总共享内存没有影响。

在一个稍微相关的说明中,手册中有一条评论
大小扩展存储段(ESTORE_SEG_SZ)依赖于系统操作,但我无法找到有关该参数的合理值的任何信息。我发现使用264个页面的16000个页面每个使用的共享内存比66个64000页面的每个页面都多,但我不知道为什么或者是否更好地使用大量<小部分而不是几个大部分!

此外,我怀疑我没有使用FCM(没有设置DB2_FORCE_FCM_BP),我是否仍在为FCM分配内存四个FCM参数设置为非零值?

干杯,

Jeremy Goodall




您可以尝试运行性能向导并为DB2提供总额为
的内存,然后让向导在组件之间分配它。那可以用
作为进一步调整工作的起点。


2003年10月17日星期五14:48:59 -0600, 标记A < ma@switchboard.net>

写道:

您可以尝试运行性能向导并为DB2提供总量
内存然后让向导在组件之间分配它。这可以作为进一步调整工作的起点。




马克,


谢谢你小费。我试过了,但性能向导只是

建议将54 Gb分配给不能正常工作的缓冲池,


干杯,

Jeremy


Hi all,

I''m getting very confused about how DB2 uses shared memory and I
wonder if someone could clarify matters for me, please ?

We are running 32bit DB2 V7.2 FP9 under AIX 4.3.3 on a machine with 64
Gb of memory with a single non-partitioned database using extended
storage and with intra-parallelism enabled.

I''ve been experimenting with changing various parameters in an attempt
to make my buffer pool as large as possible but I can''t make it bigger
than about 700 Mb and still get the database to activate.

From what I''ve read in the manuals and on the internet I believe that
DB2 should be able to use a maximum of 7 shared memory segments, which
is about 1.75 Gb of memory, that is used for everything except the
agents private memory (i.e. DBM shared memory + Db global memory +
Application global memory + Agent/application shared memory). Is that
correct ?

Again from what I''ve read it seems that:

DBM shared memory = Monitor heap(mon_heap_sz) + Audit buffer size
(audit_buf_sz) + Global control block(How big is this ?) + FCM
Connection Entries(fcm_num_connect) + FCM Message Anchors
(fcm_num_anchors) + FCM Request Block (fcm_num_rqb) + FCM
Buffers(fcm_num_buffers) + FCM Control Block(How big ?) + Something
for the database agents, the manual isn''t clear what.

and

Max DB global memory = Buffer Pool size + Locklist(locklist) +
Database Heap(dbheap) + Utility Heap Size(util_heap_sz) + Package
Cache(pckcachesz) + Extended memory cache (How big ?)

and

Application global memory = app_ctl_heap_sz

and

Agent/Application shared memory = Application support layer
heap(aslheapsz) + Client I/O block (rqrioblk)
Adding all these things up gives me a total of 940Mb which added to
the Global Control Block, FCM Control Block, Extended memory cache and
something for the agents should give a grand total of 1.75 Gb.

So, should those last four things use about 800 Mb of memory or have I
missed something ?
The manual also states that the database global memory is affected by
the numdb parameter but I''ve tried changing this from 8 to 1 with no
affect on the total shared memory used.

On a slightly related note, there is a comment in the manual that the
size of the extended storage segments (ESTORE_SEG_SZ) is operating
system dependent but nowhere can I find anything about what a sensible
value for that parameter is. I have found that using 264 segments of
16000 pages each uses more shared memory than 66 segments of 64000
pages each but I don''t know why or if it''s better to use lots of
little segments rather than a few big ones!

Also, I suspect I''m not using FCM (DB2_FORCE_FCM_BP is not set), am I
still allocating memory to FCM if the four FCM parameters are set to
non-zero values ?

Cheers,

Jeremy Goodall

解决方案

Jeremy, just a quick reply befor I dive into this one more!
The number of segments you define should be equal to the number of BPs
that are defined to use Ext. Storage.
The size of the segments is then the result of:
Amount of Storage planned for Estore divided by no. of segments.

For the rest it seems you have the right approach but I want to look
further into it.
HTH, Pierre.

Jeremy wrote:

Hi all,

I''m getting very confused about how DB2 uses shared memory and I
wonder if someone could clarify matters for me, please ?

We are running 32bit DB2 V7.2 FP9 under AIX 4.3.3 on a machine with 64
Gb of memory with a single non-partitioned database using extended
storage and with intra-parallelism enabled.

I''ve been experimenting with changing various parameters in an attempt
to make my buffer pool as large as possible but I can''t make it bigger
than about 700 Mb and still get the database to activate.

From what I''ve read in the manuals and on the internet I believe that
DB2 should be able to use a maximum of 7 shared memory segments, which
is about 1.75 Gb of memory, that is used for everything except the
agents private memory (i.e. DBM shared memory + Db global memory +
Application global memory + Agent/application shared memory). Is that
correct ?

Again from what I''ve read it seems that:

DBM shared memory = Monitor heap(mon_heap_sz) + Audit buffer size
(audit_buf_sz) + Global control block(How big is this ?) + FCM
Connection Entries(fcm_num_connect) + FCM Message Anchors
(fcm_num_anchors) + FCM Request Block (fcm_num_rqb) + FCM
Buffers(fcm_num_buffers) + FCM Control Block(How big ?) + Something
for the database agents, the manual isn''t clear what.

and

Max DB global memory = Buffer Pool size + Locklist(locklist) +
Database Heap(dbheap) + Utility Heap Size(util_heap_sz) + Package
Cache(pckcachesz) + Extended memory cache (How big ?)

and

Application global memory = app_ctl_heap_sz

and

Agent/Application shared memory = Application support layer
heap(aslheapsz) + Client I/O block (rqrioblk)
Adding all these things up gives me a total of 940Mb which added to
the Global Control Block, FCM Control Block, Extended memory cache and
something for the agents should give a grand total of 1.75 Gb.

So, should those last four things use about 800 Mb of memory or have I
missed something ?
The manual also states that the database global memory is affected by
the numdb parameter but I''ve tried changing this from 8 to 1 with no
affect on the total shared memory used.

On a slightly related note, there is a comment in the manual that the
size of the extended storage segments (ESTORE_SEG_SZ) is operating
system dependent but nowhere can I find anything about what a sensible
value for that parameter is. I have found that using 264 segments of
16000 pages each uses more shared memory than 66 segments of 64000
pages each but I don''t know why or if it''s better to use lots of
little segments rather than a few big ones!

Also, I suspect I''m not using FCM (DB2_FORCE_FCM_BP is not set), am I
still allocating memory to FCM if the four FCM parameters are set to
non-zero values ?

Cheers,

Jeremy Goodall



--
Pierre Saint-Jacques
IBM DB2 Cerified Solutions Expert - Administration
SES Consultants Inc.


"Jeremy" <je****@home.co.uk> wrote in message
news:i2********************************@4ax.com...

Hi all,

I''m getting very confused about how DB2 uses shared memory and I
wonder if someone could clarify matters for me, please ?

We are running 32bit DB2 V7.2 FP9 under AIX 4.3.3 on a machine with 64
Gb of memory with a single non-partitioned database using extended
storage and with intra-parallelism enabled.

I''ve been experimenting with changing various parameters in an attempt
to make my buffer pool as large as possible but I can''t make it bigger
than about 700 Mb and still get the database to activate.

From what I''ve read in the manuals and on the internet I believe that
DB2 should be able to use a maximum of 7 shared memory segments, which
is about 1.75 Gb of memory, that is used for everything except the
agents private memory (i.e. DBM shared memory + Db global memory +
Application global memory + Agent/application shared memory). Is that
correct ?

Again from what I''ve read it seems that:

DBM shared memory = Monitor heap(mon_heap_sz) + Audit buffer size
(audit_buf_sz) + Global control block(How big is this ?) + FCM
Connection Entries(fcm_num_connect) + FCM Message Anchors
(fcm_num_anchors) + FCM Request Block (fcm_num_rqb) + FCM
Buffers(fcm_num_buffers) + FCM Control Block(How big ?) + Something
for the database agents, the manual isn''t clear what.

and

Max DB global memory = Buffer Pool size + Locklist(locklist) +
Database Heap(dbheap) + Utility Heap Size(util_heap_sz) + Package
Cache(pckcachesz) + Extended memory cache (How big ?)

and

Application global memory = app_ctl_heap_sz

and

Agent/Application shared memory = Application support layer
heap(aslheapsz) + Client I/O block (rqrioblk)
Adding all these things up gives me a total of 940Mb which added to
the Global Control Block, FCM Control Block, Extended memory cache and
something for the agents should give a grand total of 1.75 Gb.

So, should those last four things use about 800 Mb of memory or have I
missed something ?
The manual also states that the database global memory is affected by
the numdb parameter but I''ve tried changing this from 8 to 1 with no
affect on the total shared memory used.

On a slightly related note, there is a comment in the manual that the
size of the extended storage segments (ESTORE_SEG_SZ) is operating
system dependent but nowhere can I find anything about what a sensible
value for that parameter is. I have found that using 264 segments of
16000 pages each uses more shared memory than 66 segments of 64000
pages each but I don''t know why or if it''s better to use lots of
little segments rather than a few big ones!

Also, I suspect I''m not using FCM (DB2_FORCE_FCM_BP is not set), am I
still allocating memory to FCM if the four FCM parameters are set to
non-zero values ?

Cheers,

Jeremy Goodall



You might try running the Performance Wizard and give DB2 a total amount of
memory and then let the wizard allocate it among the components. That could
be used as a starting point for further tuning efforts.


On Fri, 17 Oct 2003 14:48:59 -0600, "Mark A" <ma@switchboard.net>
wrote:

You might try running the Performance Wizard and give DB2 a total amount of
memory and then let the wizard allocate it among the components. That could
be used as a starting point for further tuning efforts.



Mark,

Thanks for the tip. I''ve tried that but the performance wizard just
recommends allocating 54 Gb to the bufferpools which won''t work,

Cheers,

Jeremy


这篇关于DB2共享内存和扩展存储的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆