<DB2>《DB2内存详细介绍》

news2024/11/23 20:09:38

《DB2内存详细介绍》

  • 1 架构图
  • 2 主要概念
    • 2.1 内存集(Memory Set)
    • 2.2 内存池(Memory Pool)
    • 2.3 内存块(Memory Block)
  • 3 内存方案
    • 3.1 第一级服务器内存
    • 3.2 第二级操作系统内存和实例共享内存
    • 3.3 第三级数据库共享内存
    • 3.4 第四级应用程序组共享内存
    • 3.5 第五级代理私有内存
  • 4 内存查看
    • 4.1 操作系统内存
      • 4.1.1
      • 4.1.2系统内存监控
      • 4.1.3收集内存使用数据和换页数据
      • 4.1.4查看换页空间(paging space)使用情况
      • 4.1.5物理内存中计算内存和文件缓存的配置参数
    • 4.2 数据库内存
      • 4.2.1 数据库占用内存
      • 4.2.2 数据库分区内存
      • 4.2.3 查询DB2实例共享内存
      • 4.2.4 查看DB2数据库共享内存
      • 4.2.5 实例级内存查询
      • 4.2.6 查看系统表空间使用的BUFFERPOOL语句
      • 4.2.7 查看表的信息

1 架构图

在这里插入图片描述

2 主要概念

2.1 内存集(Memory Set)

DB2 的内存集包括实例内存集、数据库共享内存集、应用程序内存集和代理私有内存集

2.2 内存池(Memory Pool)

内存池由若干内存块组成,其地址空间并不连续。
①内存池跟踪与其相关的内存块总和,并且控制其总和值不能超过池创建时的指定的大小。
②每个内存池都属于一个内存集;同一内存池的内存块都从该内存集中分配。
③MemoryPool是DB2 Memory Manager分配给不同组件的一组内存,DB2根据内存的使用范围、用途、行为来组织分配。

2.3 内存块(Memory Block)

一片连续的内存空间,是DB2内部内存分配的基本单位。
①内存块是一段连续的内存地址范围,主要用于被其他组件申请。
②DB2由内部结构跟踪内存块分配情况。
③一个内存块,只能属于一个内存池。

3 内存方案

3.1 第一级服务器内存

可分配部分:
服务器可分配总内存
将分配给下一级:
操作系统内存、实例共享内存。
说明:
①一个数据库可以建多个实例。如果有多个实例,则有多个实例共享内存。

3.2 第二级操作系统内存和实例共享内存

1、操作系统使用的内存。
说明:分配给操作系统的内存大小,约占比为10%以上

2、实例共享内存
分配给数据库实例使用的内存;
数据库管理器启动(db2start)时分配。
用于实例级的任务(监控、审计和节点间通信等)
①实例下的所有数据库,使用内存的集合。共享实例内存。
②实例下有多个数据库。
③包含mon_heap_sz(监控器堆)、
audit_buf_sz(审计缓冲区)、
fcm_num_buffers(多分区节点通信)、
④物理内存RAM百分比75%至95%,系统越大百分比越高。

3.3 第三级数据库共享内存

分配给数据库使用的内存

数据库激活时分配;非激活时释放。

用于数据库级的任务(备份恢复、锁定和SQL的执行等)
①每个数据库都有一个数据库共享内存集。
②包含数据库缓冲池、隐藏的缓冲池(syscat.bufferpool中没有,db2 get snapshot中存在)util_heap_sz、pckcachesz、logbufsz、dbheap、locklist、sortheap、sheapthres、sheapthres_shr

3.4 第四级应用程序组共享内存

应用程序共享内存(appl_memory)

共享应用程序内存

特定于应用程序的内容
应用程序堆(applheapsz)
统计信息堆(stat_heap_sz)
语句堆(stmtheap)
①appl_memory
②applheapsz
③stmtheap
④stat_heap_sz

3.5 第五级代理私有内存

每个DB2代理进程都需要获得内存以执行其任务。
代理进程将代表应用程序使用内存来优化、构建和执行访问计划,执行顺序,记录游标信息(例如位置和状态),收集统计信息等。
为响应并行环境中的连接请求或新的SQL请求,要为DB2代理分配代理私有内存。
application heap(applheapsz)
sort heap(sortheap)
statement heap(stmtheap)
statistics heap(stat_heap_sz)
query_heap(query_heap_sz)
java heap size(java_heap_sz)
agent stack size(java_stack_sz)

4 内存查看

4.1 操作系统内存

4.1.1

系统内存查询

命令:prtconf|grep -i "Memory Size"

4.1.2系统内存监控

命令:svmon -G

在这里插入图片描述
virtual > size ==>> virtual值给出了系统工作所需的页面数。如果virtual > size值,就表示物理内存资源不足,换页不可避免。解决:硬件上升级内存或配置用户应用,或者通过减小应用对内存的需求量来解决此性能瓶颈。

4.1.3收集内存使用数据和换页数据

命令:vmstat -w 1 6

4.1.4查看换页空间(paging space)使用情况

命令:lsps -a

在这里插入图片描述
换页空间使用率高且持续增加是物理内存资源不足的表现。
如果不能及时采取措施改善内存的使用,最终可能会导致操作系统宕机。

4.1.5物理内存中计算内存和文件缓存的配置参数

命令:vmstat -v

在这里插入图片描述

4.2 数据库内存

4.2.1 数据库占用内存

	命令:db2mtrk -i -d -v
db2mtrk是用于在DB2数据库中进行内存跟踪的工具,可以用于查看示例、数据库、代理进程当前对内存的使用状态。
  
  db2mtrk -i    显示当前实例的内存使用情况
  db2mtrk -i -v 显示当前实例的内存使用的详细信息
  db2mtrk -d    显示数据库的内存使用情况
  db2mtrk -d -v 显示数据库的内存使用情况的详细信息
  db2mtrk -p    显示代理进程专用内存使用率
  db2mtrk -h    显示帮助信息
  
  -m       参数选项用于显示最大的内存使用上线
  -w       参数选项用于显示使用过程中内存达到的最大值,即watermark
  -r       参数选项用于重复显示,其中interval是重复显示的时间间隔数,count是要重复显示的次数
  interval 指定以秒为单位的重复的间隔
  count    指定间隔的次数
  -v       详细输出
  -h       显示帮助信息

  在db2mtrk工具的输出的信息中有几种类型的信息:
  *当前值得大小
  *最大值的限制(hard limit*最高值(high water mark)
  *类型(用于指定使用了哪种内存)
  *代理进程使用的内容(只针对私有内存池)

4.2.2 数据库分区内存

命令:db2pd -dbptnmem

在这里插入图片描述

Controller Automatic内存控制器设置。如果instance_memory配置参数设置为automatic,则值显示为Y。数据库自行确定内存消耗上限。
Memory Limit内存限制:如果强制施加了实例内存限制。那么instance_memory配置参数的值是可以耗用的DB2服务器内存的上限。
Current usage服务器当前耗用的内存量
HWM usage激活数据库分区(db2start命令运行时)以来消耗的内存高水位标记(HWM)或峰值
Cached memory当前使用量中未使用但为了提高将来内存请求的性能二高速缓存的内存量
APPL-TYCJDB为数据库dbname耗用的应用程序内存。
DBMS-db2inst1DBMS-name:全局数据库管理器内存需求。
FMP_RESOURCES与db2fmps进行通信所需的内存。
PRIVATE其他专用内存需求。
DB-TYCJDB为数据库dbname耗用的数据库内存。
Name内存“使用者”的简短专有名称,例如APPL-dbname为数据库dbname耗用的应用程序内存。
Mem Used(KB)当前分配给使用者的内存量
HWM Used(KB)使用者曾经耗用的内存量的高水位标记(HWM),即内存量峰值。
Cached(KB)在“使用的内存”中,当前未使用但立即可用于将来的内存分配的内存量。
命令:db2pd -memblock
命令:db2pd -bufferpool

4.2.3 查询DB2实例共享内存

命令:db2 get dbm cfg | grep -i mem

4.2.4 查看DB2数据库共享内存

命令:db2 get db cfg | grep -i mem

4.2.5 实例级内存查询

命令:db2pd -inst -memsets

在这里插入图片描述
Name:内存集的名称;Id:内存集的标识。Size(Kb):内存集的总大小,为Cmt(Kb)与UnCmt(Kb)之和。
Unrsv(Kb):是指未预留给特定内存池的大小,任何内存池都可以使用这部分。Used(Kb):当前分配给内存池的大小。
Cmt(Kb):是DB2已经向操作系统提交的内存。这些内存既可以是物理内存,也可以是交换空间。
Uncmt(Kb):当前还没有使用、但被DB2标识为未提交的内存。根据操作系统不同,这些内存既可以是物理内存,也可以是交换空间。
上图,db2实例级内存集有三个:实例使用(DBMS)、保护存储过程使用(FMP)、跟踪工具使用(Trace)。

命令:ipcs -m

在这里插入图片描述

4.2.6 查看系统表空间使用的BUFFERPOOL语句

select A.TBSPACE,A.OWNER,A.OWNERTYPE,A.CREATE_TIME,A.TBSPACEID,A.DBPGNAME,A.BUFFERPOOLID,B.BPNAME from syscat.tablespaces A ,syscat.bufferpools B where A.BUFFERPOOLID=B.BUFFERPOOLID
select TABSCHEMA,TABNAME,OWNER,TYPE,CREATE_TIME,ALTER_TIME,STATS_TIME,TBSPACEID,TBSPACE,INDEX_TBSPACE,CARD,NPAGES from syscat.tables where OWNER !='SYSIBM' and TYPE='T'

4.2.7 查看表的信息

select TABSCHEMA,TABNAME,OWNER,TYPE,CREATE_TIME,ALTER_TIME,STATS_TIME,TBSPACEID,TBSPACE,INDEX_TBSPACE,CARD,NPAGES from syscat.tables where OWNER !='SYSIBM' and TYPE='T'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/614173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

K8S | 核心原理分析

整体上理解流程和原理; 一、背景 基于分布式的架构中,需要管理的服务是非常多的,无论是服务的数量还是体系划分; 从服务的能力上看,可以进行分层管控,只是其中有相当一部分服务层,改动更新的频…

【Python黑科技】自动答题项目代码分析(保姆级图文+实现代码)

目录 实现效果图片素材和源码 实现思路1. 打开对应网页,做好准备工作2. 获取正确答案3. 答题4. 提交试卷实现代码总结 欢迎关注 『Python黑科技』 系列,持续更新中 欢迎关注 『Python黑科技』 系列,持续更新中 实现效果 图片素材和源码 已经…

chatgpt赋能python:Python如何在图像上标注

Python如何在图像上标注 对于图像标注,Python提供了许多工具和库,其中最常用的是OpenCV和Pillow。这篇文章将介绍如何使用Pillow在图像上进行标注。 安装Pillow库 在使用Pillow库之前,需要先安装它。在命令行中输入以下命令: …

2023-06-02 stonedb-修改包含内连接的嵌套外连接-问题反思

摘要: 最近在搞一个列存储引擎的包含内连接的嵌套外连接过慢的问题, 连接执行过慢的原因分析见此前的博客分析, 虽然逻辑很绕, 但是也不是无法分析. 更麻烦的问题在于修改查询计划, 让其能按照代价更小的方式正确的执行. 遇到的问题比我在修改查询计划前设想的更为棘手, 本文…

chatgpt赋能python:Python循环次数:实现高效编程的关键

Python循环次数:实现高效编程的关键 在编写Python程序时,循环次数是一个经常需要关注的问题。循环次数过多会导致程序执行效率低下,甚至可能引起性能问题。因此,如何控制循环次数成为实现高效编程的关键。本文将介绍Python中循环…

chatgpt赋能python:Python如何实现将数据结果导出

Python如何实现将数据结果导出 在Python编程中,我们经常需要将代码运行的结果导出保存在文件中,或在其他程序中使用。下面我们将介绍Python中几种将数据结果导出的方法。 方法一:使用文件输出 使用Python内置的open方法来打印输出的结果到…

【C++】类和对象 - 对象特性 - 构造函数和析构函数,函数分类及调用,拷贝构造函数调用时机,构造函数调用规则,深浅拷贝,初始化列表,类对象作为类成员

No.Contents1【C】基础知识 - HelloWorld,注释,变量,常量,关键字,标识符2【C】数据类型 - 整型,sizeof,实型,字符型,转义字符,字符串类型,布尔类型…

chatgpt赋能python:Python版本更新:为什么你应该及时升级

Python版本更新:为什么你应该及时升级 作为一名有10年Python编程经验的工程师,我深刻理解Python版本更新的重要性。在这篇文章中,我将向你介绍Python版本更新的背景和原因,并告诉你如何及时升级Python的版本以保持你的代码的安全…

由 Direct buffer memory 引发的附件下载优化方案

文章目录 前言一、Direct buffer memory1.1 原因分析1.2 解决方案 二、附件下载2.1 问题分析2.2 解决方案2.2.1 本地下载2.2.1 minio下载 前言 本地上传大文件内存溢出 Direct buffer memory附件下载服务端传流给前端需要将流缓存完毕才可以下载,导致大文件下载系统…

浏览器的渲染原理

网页的解析过程 ◼ 常见的浏览器内核有  Trident ( 三叉戟):IE、360安全浏览器、搜狗高速浏览器、百度浏览器、UC浏览器;  Gecko( 壁虎) :Mozilla Firefox;  Presto&#xff…

chatgpt赋能python:Python散点图连接成光滑曲线的技巧

Python散点图连接成光滑曲线的技巧 Python是一种功能强大的编程语言,广泛用于数据科学、机器学习、Web开发和自动化等领域。在数据可视化中,散点图是一种非常重要的图表类型,用于显示两个变量之间的关系。然而,有时散点图可能过于…

Linux 可视化管理-webmin 和 bt 运维工具

Linux 可视化管理-webmin 和bt 运维工具 webmin 基本介绍 Webmin 是功能强大的基于Web 的Unix/linux 系统管理工具。管理员通过浏览器访问Webmin 的各种管理功能并完成相应的管理操作。除了各版本的linux 以外还可用于:AIX、HPUX、Solaris、Unixware、Irix 和Fre…

freeRTOS学习(四)

队列管理 队列提供了任务到任务、任务到中断和中断到任务的通信机制。 队列的特征 数据存储 队列可以保存有限数量的固定大小的数据项。一个队列所能容纳的最大条目数称为它的长度。每个数据项的长度和大小都在创建队列时设置。 队列通常用作先进先出(FIFO&…

【利用AI让知识体系化】常见的移动端适配知识

I. 引言 A. 移动设备的普及度 移动设备的普及度近年来持续攀升,据统计,截至2021年,全球手机用户数量已达51.98亿,而智能手机的普及率则已经超过了70%,成为人们生活中最为重要和常用的工具之一。 同时,平…

chatgpt赋能python:Python如何更改?

Python如何更改? 如果您想成为一名成功的Python程序员,那么您需要知道如何更改Python代码。在这篇文章中,我们将介绍Python如何更改,并提供一些实用的技巧和建议来使您的编码更加高效和有用。 什么是Python? Python…

chatgpt赋能python:Python如何填充颜色

Python如何填充颜色 Python是一种简单易学但功能丰富的编程语言,被广泛用于各种开发领域。其中填充颜色是Python中的一个非常重要的功能,在很多项目中都会经常用到。本文将介绍Python如何填充颜色,让你快速上手。 什么是填充颜色 填充颜色…

Python matplotlib库的使用

目录 画图的两种基本方式: 隐藏边框: 隐藏坐标系 设置网格线 共享坐标轴 双坐标轴 设置坐标轴标签及刻度字体大小 设置坐标轴标签据离坐标轴距离 画点与线 标注文字 画不同大小的多个坐标系 调节子图间距 导入库: import matplotl…

【JavaSE】Java(五十):核心要点

文章目录 1. JDK 和 JRE 有什么区别2. \和 equals 的区别3. final 在java中有什么作用4. Java中的Math() 类有哪些常用方法5. String 属于基础数据类型吗? 1. JDK 和 JRE 有什么区别 JDK(Java Development Kit)和 JRE(Java Runtime Environ…

FusionCharts Suite XT 3.20.X Crack

3.20版# 2023年3月24日 新功能 FusionCharts 3.20版本引入了一种新方法_changeXAxisCordinates,它允许用户自动更改x轴,使其在图例或数据交互时居中对齐。 FusionCharts 3.20版本更新了Angular集成,支持Angular版本14和15。 FusionChart…

HTML (Hyper Text Markup Language)

目录 网页(html文件) 什么是HTML? web标准 为啥需要web标准 web标准的构成 VScode的使用 HTML标签 基本语法 标签关系 结构标签 课间拓展: 了解骨架代码 HTML中常见的标签 标题标签 注释标签 段落标签 换行标签 文本格式化标签 div 和span 标签 图像标签 …