db2内存使用基础

db2内存使用基础

ID:37430980

大小:961.21 KB

页数:26页

时间:2019-05-23

db2内存使用基础_第1页
db2内存使用基础_第2页
db2内存使用基础_第3页
db2内存使用基础_第4页
db2内存使用基础_第5页
资源描述:

《db2内存使用基础》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、【导读】本文将向您讲解DB2内存使用的基础,以及共享内存和私有内存的概念。这些内容同时适用于32位和64位的系统。简介理解DB2如何使用内存,可以防止过度分配内存,并有助于对内存的使用进行调优,从而获得更好的性能。本文将向您传授DB2内存使用的基础,以及共享内存和私有内存的概念。这些内容同时适用于32位和64位的系统。虽然对于64位系统有一些限制,但是在未来的一段时间内还不大可能触及这些限制。因此,我们将焦点放在影响32位系统的内存限制,并对之进行详细的讨论。我们首先讨论一般情况下DB2如何使用内存,接着讨论内存管理如何随着平台(AIX、Sun、HP、Linux和Windows)的不同而变化

2、,以及它们对DB2的影响。最后,我们将给出一些实际生活中客户处境/问题以及他们的解决方案的有意义的例子。本文的内容适用于DB2version8。DB2内存结构概述图1中说明了DB2内存结构。这种内存结构在所有平台上都是一致的。注意:在多分区环境中,下面的图适用于多分区实例中的每个分区。图1-DB2内存结构DB2在4种不同的内存集(memoryset)内拆分和管理内存。这4种内存集分别是:实例共享内存(instancesharedmemory)数据库共享内存(databasesharedmemory)应用程序组共享内存(applicationgroupsharedmemory)代理私有内存(a

3、gentprivatememory)每种内存集由各种不同的内存池(亦称堆)组成。图1也给出了各内存池的名称。例如,locklist是属于数据库共享内存集的一个内存池。sortheap是属于代理私有内存集的一个内存池。我们将详细讨论每一种内存集。实例共享内存每个DB2实例都有一个实例共享内存。实例共享内存是在数据库管理器启动(db2start)时分配的,并随着数据库管理器的停止(db2stop)而释放。这种内存集用于实例级的任务,例如监控、审计和节点间通信。下面的数据库管理器配置(dbmcfg)参数控制着对实例共享内存以及其中个别内存池的限制:实例内存(instance_memory)。监视器

4、堆(mon_heap_sz):用于监控。AuditBuffer(audit_buf_sz):用于db2audit实用程序。FastCommunicationbuffers(fcm_num_buffers):用于分区之间的节点间通信。仅适用于分区的实例。instance_memory参数指定为实例管理预留的内存数量。默认值是AUTOMATIC。这意味着DB2将根据监视器堆、审计缓冲区和FCM缓冲区的大小计算当前配置所需的实例内存数量。此外,DB2还将分配一些额外的内存,作为溢出缓冲区。每当某个堆超出了其配置的大小时,便可以使用溢出缓冲区来满足实例共享内存区内任何堆的峰值需求。在这种情况下,个别

5、堆的设置是软限制的,它们可以在内存使用的峰值期间进一步增长。如果instance_memory被设置为某一个数字,则采用instance_memory与mon_heap_sz、audit_buf_sz和fcm_num_buffers的和之间的较大者。这时,对实例内存就施加了一个硬性的限制,而不是软限制。当达到这个限制时,就会收到内存分配错误。出于这个原因,建议将instance_memory的设置保留为AUTOMATIC。如果instance_memory被设为AUTOMATIC,则可以使用下面的命令来确定它的值:db2attachtoinstance_name(其中instance_nam

6、e是实例的名称)db2getdbmcfgshowdetail下面的输出表明有42MB的内存被预留给实例共享内存集(10313页*4096字节/页):Sizeofinstancesharedmemory(4KB)(INSTANCE_MEMORY)=AUTOMATIC(10313)AUTOMATIC(10313)instance_memory参数只是设置了实例共享内存的限制。它并没有说出当前使用了多少内存。要查明一个实例的内存使用情况,可以使用DB2内存跟踪器工具db2mtrk。例如,db2startdb2mtrk-i-vMemoryforinstanceFCMBPHeapisofsize174

7、32576bytesDatabaseMonitorHeapisofsize180224bytesOtherMemoryisofsize3686400bytesTotal:21299200bytes上面的例子表明,虽然预留给实例共享内存集的内存有42MB,但在db2mtrk运行时只用到了大约21MB。注意:在某些情况下,db2mtrk显示的大小会大于指定给配置参数的值。在这种情况下,赋予配置参数的值被作为一种软

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。