根据应用服务器实例上的负载、HADB 上的负载以及故障转移要求,您可以确定:
要确定所需的应用服务器实例(主机)数,请根据估算 Application Server 实例上的负载中介绍的各种因素评估每个应用服务器实例的环境,即使每个实例可以使用多个中央处理单元 (Central Processing Unit, CPU) 也要进行评估。
作为一般准则,计划为系统中的每个 CPU 分配一个 HADB 节点。例如,包含两个 CPU 的计算机使用两个 HADB 节点。
如果每台计算机(例如,如果使用较大的计算机)有多个 HADB 节点,则必须确保计算机上有足够的冗余和可伸缩性;例如,配备了多个不间断电源和独立磁盘控制器。
或者,使用以下步骤。
确定以下参数:
最大并发用户数 n users。
平均 BLOB 大小 s。
每个用户的最大事务率,称为 NTPS。
确定最大主数据量的大小 V data(以千兆字节为单位)。
请使用下面的公式:
V data = nusers .s
确定最大 HADB 数据传输速率 R dt。
这反映了从应用程序端传入 HADB 的数据量。请使用下面的公式:
Rdt = nusers .s .NTPS
确定节点数 N NODES。
请使用下面的公式:
NNODES = V data /5GB
将该值舍入为偶数值,因为节点是成对使用的。
根据数据传输要求确定 HADB 主机数。此计算假定所有主机具有类似的硬件配置和操作系统,并且为它们运行的节点分配了所需的资源。
确定最大主机数据传输速率 R max.。
根据经验确定该值,因为它是由网络和主机硬件决定的。请注意,它与上一节中确定的最大 HADB 数据传输速率 R dt 是不同的。
确定包含此数据所需的主机数
更新一些主机 (N HOSTS) 上分配的数据量 V 可使每个主机接收大约 4V/N HOSTS 的数据。请使用以下公式确定包含此数据量所需的主机数:
NHOSTS = 4 .Rdt / Rmax
将该值舍入为最接近的偶数值,以使每个 DRU 具有相同数量的主机。
在每个 DRU 上添加一个主机作为备用节点。
如果其他的每个主机运行 N 个数据节点,则允许此主机运行 N 个备用节点。这可防范单个计算机出现故障而将 N 个数据节点关闭的情况。
每个主机需要运行至少一个节点,因此,如果节点数小于主机数 (NNODES < NHOSTS),则调整 NNODES 以使其等于 NHOSTS。如果节点数大于主机数 (NNODES > NHOSTS),则可以在同一个主机上运行多个节点。
HADB 容量随节点数的增加呈近乎线性增长,直至超过网络容量为止。必须在一个或多个专用磁盘上为每个节点配置存储设备。必须在存储设备上为所有节点分配相同的容量空间。请确保在本地磁盘上分配存储设备。
假定预期大小的会话数据为 x MB。HADB 需将数据复制在镜像节点上,因此,它需要 2x MB 的存储容量。此外,HADB 使用索引来实现对数据的快速访问。两个节点需要额外的 2x MB 以用于索引,所需的总存储容量为 4x。因此,HADB 的预期存储容量要求是预期数据量的 4 倍。
考虑到以后要进行扩容以防止数据从 HADB 中丢失,您必须提供额外的存储容量以便联机进行升级, 因为您可能需要在添加新节点后对数据进行重新分段。在这种情况下,数据设备上需要类似数量 (4x) 的额外空间。因此,预期的存储容量为预期数据量的 8 倍。
此外,HADB 将磁盘空间用作以下空间:
日志缓冲区的临时存储空间。此空间是日志缓冲区大小的 4 倍。日志缓冲区跟踪与数据相关的操作。日志缓冲区大小的默认值为 48 MB。
用于内部管理的空间。此空间占存储设备大小的 1%。
下表简要说明了 x MB 会话数据的 HADB 存储空间要求。
表 2–3 会话大小为 X MB 的 HADB 存储空间要求
条件 |
需要的 HADB 存储空间 |
---|---|
在不需要联机的情况下添加或删除 HADB 节点。 |
4x MB +(4*日志缓冲区大小)+ 设备大小的 1% |
在需要联机的情况下添加或删除 HADB 节点。 |
8x MB +(4*日志缓冲区大小)+ 设备大小的 1% |
如果 HADB 使用的设备空间不足,它不会接受客户机的插入或更新数据请求。不过,它将接受删除操作。如果 HADB 使用的设备空间不足,它将返回错误代码 4593 或 4592,并在历史记录文件中写入相应的错误消息。有关这些消息的更多信息,请参见《Sun Java System Application Server 9.1 Error Message Reference》中的第 14 章 “HADB Error Messages”。