我有一个问题一直困扰着我,但我只是不知道如何验证它。我们在我们的商店的 AIX 上运行 DB2 LUW。我们的 AIX 目前是 7.1。对于大多数安装,我们的 DB2 为 9.7 FP 4,对于我们最新的数据库,为 10.5 FP 2。我们甚至在同一个“盒子”上混合安装(即 9.7 和 10.5)。
我们的盒子当然是 LPAR,由我们的 AIX 管理员提供给我们。AIX 管理员也是我们的存储管理员,因此所有磁盘都是 SAN。我们的数据库服务器没有太多的物理信息。
一直困扰我的是每个 LPAR 的 DB2 实例的正确平衡是多少?我开始看到一些关于 DB2 自动配置自身的奇怪行为。在一个 DEV LPAR 上,我们有以下配置:
请注意以下情况适用于所有实例:HEALTH_MON
设置为OFF
,并且对于每个数据库AUTO_MAINT
都设置为 。OFF
我们确实允许自调整内存管理器 (STMM) 在默认情况下打开,并为此设置了所有必要的参数(即,正确参数中的零或 AUTOMATIC,DB2 提供的默认值...)。如果我们构建一个 OLTP 数据库,那么我们将 instance parm 设置MAX_QUERYDEGREE
为1
并将db parm设置INTRA_PARALLEL
为。如果我们构建一个 OLAP 数据库(单独的实例),我们将实例参数设置为和并将数据库参数设置为NO
DFT_DEGREE
1
MAX_QUERYDEGREE
ANY
INTRA_PARALLEL
YES
DFT_DEGREE
ANY
. 我们也不会尝试在同一个实例中混合 OLAP 和 OLTP 数据库,尽管部分问题是是否在同一个 LPAR 上混合实例......
这是我们在一个 DEV LPAR 上的内容:
- 一审是9.7。包含一些 OLAP 数据库,尽管它们非常小,因为它们用于测试 DDL 更改。
- 二审是9.7。包含供开发人员使用的 OLAP 数据库“游乐场”。(这应该是我们一有机会就退役的。)
- 第三个实例是 10.5。包含来自实例 2 的 playground 数据库的官方 DEV 版本。
- 第四个实例是 10.5。带有本地元数据字典的 OLTP 数据库。
- 第五例是10.5。用于查找数据的 OLTP 数据库。
- 第六例是10.5。ODS 数据库(不确定这是 OLTP 还是 OLAP....),供开发人员将来自两个事务系统的数据联系起来。
现在磁盘不是最大的问题,因为它由 SAN 处理。由于这是一个 LPAR,甚至内存和 CPU 也被虚拟化了。但是我在记忆中看到了一些奇怪的东西。
一个 OLAP 数据库(操场和官方 DEV)都相当大。开发人员正在对大量数据进行 ETL 测试,并根据他们对 QAT 和 PROD 构建的官方请求估算大小。自从其中一个开始增长以来,我注意到新的实例构建和新的数据库构建现在默认关闭了 STMM。我可以手动将其重新打开,但关键是我觉得这令人不安。默认情况下是否启用 STMM 是由 DB2 在创建时根据系统资源决定的。所以,对我来说,这就是说 DB2 觉得它没有足够的资源来进行自动管理,所以它试图限制内存,希望它至少能获得那么多。(我对此的猜测。)
当我与 AIX 管理员讨论这个问题时,他们似乎并不认为内存和 CPU 是个问题。他们说我们并没有真正充分利用我们的潜力,所以在他们看来(我说的很笼统)我们可以将所有开发实例放在同一个 LPAR 上。或其他环境类似。同样,这是松散的,因为他们了解 HA 和 DR 场景的分离点。
不管怎样,这让我想知道,在知道何时可以将实例添加到 LPAR 或何时应该拆分到其他 LPAR 之间,他们是否有任何指示或指南?我确定答案是“视情况而定”,但我正在寻找任何近似值或准则?特别是如果它们在 OLTP 和 OLAP 方面有所不同。
你不会得到这个问题的任何具体答案,因为正如你所观察到的,这取决于。
答案取决于贵公司对一个 DB2 实例对另一个实例的性能产生不利影响的容忍度。如果您的 AIX 管理员愿意在操作系统级别(而不是 DB2 WLM)学习和设置 WLM 策略,您可能能够控制或限制这种影响。
这实际上是容量管理的问题。了解您环境中的工作负载是这里的关键,能够识别(或预测)您何时会遇到限制将影响您关于在单个服务器上放置多少个实例的决定。