

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# HSM 节流
<a name="troubleshoot-hsm-throttling"></a>

当您的工作负载超过 AWS CloudHSM 集群的硬件安全模块 (HSM) 容量时，您将收到错误消息，说明忙碌或已 HSMs 受限制。发生这种情况时，您可能会看到吞吐量降低或来自的拒绝请求率增加 HSMs。此外， HSMs 可能会发送以下繁忙错误。

## 适用于客户端软件开发工具包 5
<a name="ts-hsm-throttling-sdk5-errors"></a>
+ 在中 PKCS11，繁忙错误映射到`CKR_FUNCTION_FAILED`。出现此错误可能有多种原因，但如果 HSM 节流导致此错误，则您的日志中将显示以下日志行：
  + `[cloudhsm_provider::hsm1::hsm_connection::e2e_encryption::error] Failed to prepare E2E response. Error: Received error response code from Server. Response Code: 187`
  + `[cloudhsm_pkcs11::decryption::aes_gcm] Received error from the server. Error: This operation is already in progress. Internal error code: 0x000000BB`
+ 在 JCE 中，繁忙错误映射到 `com.amazonaws.cloudhsm.jce.jni.exception.InternalException: Unexpected error with the Provider: The HSM could not queue the request for processing.`
+ 其他 SDKs “忙碌” 错误会打印出以下消息:`Received error response code from Server. Response Code: 187`.

## 适用于客户端软件开发工具包 3
<a name="ts-hsm-throttling-sdk3-errors"></a>
+ 在中 PKCS11，繁忙错误映射到`CKR_OPERATION_ACTIVE`错误。
+ 在 JCE 中，繁忙错误映射到 `CFM2Exception`，状态为 `0xBB (187)`。应用程序可以使用 `CFM2Exception` 上的 `getStatus()` 功能检查 HSM 返回的状态。
+ 其他 SDKs 繁忙错误将打印出以下消息：`HSM Error: HSM is already busy generating the keys(or random bytes) for another request.`

## 解决方案
<a name="ts-hsm-throttling-resolution"></a>

您可以通过完成以下一项或多项操作来解决这些问题：
+ 为您的应用程序层中被拒绝的 HSM 操作添加重试命令。在启用重试命令之前，请确保您的集群大小足以满足峰值负载。
**注意**  
对于客户端软件开发工具包 5.8.0 及更高版本，重试命令默认处于启用状态。有关每个 SDK 的重试命令配置的详细信息，请参阅 [客户端软件开发工具包 5 配置工具的高级配置](configure-sdk5-advanced-configs.md)。
+ 按照中的说明 HSMs 向集群添加更多内容[在 AWS CloudHSM 集群 HSMs 中扩展](add-remove-hsm.md)。
**重要**  
我们建议您对集群执行负载测试，以确定您的峰值负载预期，然后添加 HSM 以确保高可用性。