![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
内存超负荷保护
内存超负荷保护限制随需应变路由器 (ODR) 转发流量的速率,以便防止在应用程序服务器中发生内存用完的例外情况。如果没有服务器亲缘关系的流量到达 ODR,并已超过所有潜在服务器的速率,那么会拒绝该流量。内存超负荷保护不会拒绝具有服务器亲缘关系的流量。例如,具有会话亲缘关系或 SIP 对话框内消息的 HTTP 请求。
要针对内存超负荷提供保护,内存超负荷保护最初必须发现最大速率,换句话说,在不超过最大高峰大小的最大百分比的情况下可以持续的每秒的调用数。因为内存超负荷保护正发现最大速率,所以在没有亲缘关系的情况下它会允许更多流量缓慢通过,但将拒绝其余部分。最初,使用 503 可拒绝潜在的大量没有亲缘关系的 HTTP 请求或 SIP 消息(除非更改了错误代码)。Intelligent Management 在服务器重新启动之间会保持最大速率,因此需要了解一次最大速率。最大速率因会话或对话生存期中的更改而随着时间的推移进行更改,但这些生存期通常更改相对较慢,且内存超负荷保护能够对这样的更改作出响应。要发现最大速率,该产品至少必须在平均时间段保持速率的相对稳定性。平均时间段必须至少与大多数 HTTP 会话、SIP 对话或应用程序会话的生存期一样长。因此,平均时间段越长,其初始化需要的时间也越长。
对于 SIP 和 HTTP,如果动态集群处于自动方式,那么不保证内存超负荷保护和 CPU 超负荷保护会工作,因为复制会引发 CPU 和堆超负荷
WebSphere eXtreme Scale 注意事项
当另一应用程序服务器启动或停止时,WebSphere® eXtreme Scale 可能会在运行的应用程序服务器中分配附加内存。内存超负荷保护当前不会控制此内存分配。因此,如果内存利用率已过高,那么未控制分配的附加内存会导致发生内存用完的例外。例如,如果内存的最大百分比设置是 90%,且应用程序服务器 AS1 中的当前堆利用率接近 90%,那么在应用程序服务器 AS2 启动或停止时,可能会因向 AS2 的复制而在 AS1 中发生内存用完的例外。当应用程序服务器启动或停止时,应将最大堆百分比设置得足够低,以便始终保留潜在复制所需的足够内存。如果将最大百分比内存设置设置为 56%,那么内存超负荷保护将防止在动态集群中发生 OutOfMemoryException。