0

我们有一个 IBM DB2 数据库,我们通过 Fitnesse 运行一些测试。执行几次测试后,数据库开始挂起。因此,我们下载了一个 DB2 分析器 DB2 Monitor,我们发现系统定义的用户空间“USERSPACE1”的内存使用率为 99.6%,之后数据库开始挂起。这不会始终如一地发生。我们还观察到,有时,在达到 99.6 % 的内存使用率后,内存使用率下降到 30 - 40 % 左右。

4

1 回答 1

1

首先,USEPACE1 是一个表空间,它与磁盘/存储相关联。此表空间的默认缓冲池是 IBMDEFAULTBP(内存/RAM)。

可能,您正在寻找的是 IBMDEFAULTBP 正在被密集使用,并且突然间,它的工作负载发生了变化,并且内存被用于其他目的。我认为 STMM 已激活,这就是为什么您会看到内存空间是平衡/更改的,并且以下工作负载与锁、排序相关,这就是您看到 DB2“挂起”的原因。

另一种情况可能是,如果 USERSPACE1 被完全使用,并且为此表空间配置了自动存储,那么 DB2 将为它预分配更多空间。这就是您看到 99.6% 的使用率的原因,然后可能有大量删除或表丢失,这就是您看到使用率下降到 40% 的原因。同时,在该操作之后,工作负载发生了变化,您会看到新的行为。

好吧,我解释了两种可能的情况,但请记住,内存/RAM 与缓冲池相关联,而存储/磁盘与表空间相关联。

如果您想知道数据库中发生了什么,您应该使用 db2pd 或 db2top(实时工具)。db2 挂起的事实是因为它正在做其他事情,您必须发现它。这可能是一个编程问题。

于 2013-11-12T10:30:32.293 回答