暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DB2架构及内存/进程模型

原创 zhou 2024-06-28
89

DB2主要架构

集中式DB2

share nothing MPP架构db2dpf

数据分区,连接聚合通过FCM广播通信

高可用架构db2 purescale

DB2 pureScale 构架图

进程/线程模型

此图显示客户机连接和数据库服务器组件

内存模型


20240223151023image.png
DB2 在 4 种不同的内存集(memory set)内拆分和管理内存。这 4 种内存集分别是:

实例共享内存(instance shared memory)

instance_memory 实例内存

mon_heap_sz 监视器堆

audit_buf_sz 审计db2audit 实用程序

fcm_num_buffers 分区之间的节点间通信(DB2 DPF / purescale)

可用如下命令查看配置

db2 attach to instance_name

db2 get dbm cfg show detail

db2mtrk -i -v

数据库共享内存(database shared memory)

util_heap_sz 实用程序堆。当一个数据库实用程序备份、恢复、导出、导入和装载

catalogcache_sz 目录高速缓存 catalogcache_sz 缓存 表、表空间绑定程序包、数据库级别特权、例程特权、全局变量特权和角色权限等访问信息避免查询系统表(表数量越多缓存设置应调整越大)

db2 update db cfg using CATALOGCACHE_SZ 500

locklist 锁列表,限制锁资源使用,锁列表资源不够将导致锁升级,从来减低并发
锁定需要 128 或 256 字节的锁定列;对象挂起一个锁定需要 256 个字节,对象已挂起锁定记录一个锁记录一个锁定需要 128 个字节;locklist大小需要从应用并发访问多少行记录,存在多少并发来预估。可同时设置maxlocks限制单个应用程序锁挂起行记录数;单个应用程序使用的锁定列表百分比达到 maxlocks 时,数据库管理器就会对该应用程序挂起的锁定执行从行到表的锁定升级

pckcachesz 程序包高速缓存;当前执行的 SQL 或 XQuery 语句的所有环节;下次SQL请求如果命中缓存,只需执行它们而不必将其装入或进行编译

dbheap 数据库堆 用于分配LOGBUFSZ 的日志缓冲区、压缩表元数据缓存、审计、HADR DB2_HADR_BUF_SIZE ,通常建议设置为AUTOMATIC

缓存池 bufferpool,DB2存在4个隐藏缓存池,以及自定义缓存池,主要用于数据索引缓存,通常建议对每个表空间设置自有的缓存池,已规避缓存池争用

配置查询

db2 connect to dbnameuser userid using pwd
db2 get db cfg for dbnameshow detail

db2mtrk -i -d -v

应用程序组共享内存(application group shared memory)


20240223151122image.png
应用程序通常需要不止一个的代理来执行其任务。允许这些代理之间能够彼此通信,

属于相同应用程序组的所 DB2 代理都使用 应用程序组共享内存进行通信

如数据库配置为

最大应用程序内存集大小 (4KB) (APPGROUP_MEM_SZ) = 40000
最大应用程序控制堆大小 (4KB) (APP_CTL_HEAP_SZ) = 512
用于应用程序组堆的内存所占百分比 (GROUPHEAP_RATIO) = 70

则:

应用程序组共享内存集是: 40000 页 * 4K/页 = 160 MB
应用程序组共享堆的大小是: 40000 * 70% = 28000 4K 页 = 114MB
该应用程序组内可容纳的应用程序数为: 40000/512 = 78
用于每个应用程序的应用程序控制堆为: (100-70)% * 512 = 153 4K 页 = 0.6MB

公式就是 ((100 - groupheap_ratio)% * app_ctrl_heap_sz)

app_ctrl_heap_sz 不是一个应用程序组内用于每个应用程序的各应用程序控制堆的大小。它只是在计算这个应用程序组内可容纳多少应用程序时用到的一个值

groupheap_ratio 越高,应用程序组共享堆就越大,从而用于每个应用程序的应用程序控制堆就越小

代理私内存(agent private memory)


20240223151212image.png
代理私内存集由以下内存池组成。这些内存池的大小由括号中的数据库配置参数指定:
Application Heap applheapsz
Sort Heap sortheap
Statement Heap stmtheap
Statistics Heap stat_heap_sz
Query Heap query_heap_sz
Java Interpreter Heap java_heap_sz
Agent Stack Size agent_stack_sz (仅适用于 Windows)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论