

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 對 AWS Managed Microsoft AD 高 CPU 使用率進行故障診斷
<a name="ms_ad_troubleshooting_high_cpu"></a>

以下可協助您對 AWS Managed Microsoft AD 網域控制站上的高 CPU 問題進行疑難排解。

## 尋找根本原因
<a name="ms_ad_high_cpu_root_cause"></a>

疑難排解高 CPU 使用率的第一步是分析 CloudWatch 指標，以識別可能解釋資源消耗增加的模式。

### 步驟 1： Review Directory Service CloudWatch 指標
<a name="ms_ad_high_cpu_step1"></a>

使用 CloudWatch 指標監控 AWS Managed Microsoft AD 效能，以識別與高 CPU 用量相關的流量模式。如需檢視和解譯 Directory Service 指標的詳細資訊，請參閱 [使用 CloudWatch 監控 AWS Managed Microsoft AD 網域控制站的效能](ms_ad_monitor_dc_performance.md)。

尋找下列可能說明 CPU 增加的關鍵指標中的轉移模式：
+ **每秒 DNS 查詢** – 突然峰值可能表示 DNS 解析問題或應用程式設定錯誤。
+ **Kerberos/NTLM 身分驗證** – 來自使用者登入或服務帳戶的較高身分驗證率。
+ **每秒 LDAP 查詢** – 增加來自應用程式或服務的 LDAP 流量。

比較目前的指標與歷史基準，以識別高 CPU 使用率何時開始，並將其與特定流量增加建立關聯。如果在指標中找不到相互關聯，則根本原因不會造成流量大幅增加。相反地，根本原因可能是效率不佳的 LDAP 查詢，請跳到 [步驟 3：使用流量鏡像擷取詳細的流量分析](#ms_ad_high_cpu_step3)。

### 步驟 2：使用 VPC 流程日誌識別來源機器
<a name="ms_ad_high_cpu_step2"></a>

VPC 流程日誌提供有效的方法來識別產生流量至網域控制站之機器的來源 IP 地址。如需詳細資訊，請參閱[使用 VPC 流量日誌記錄 IP 流量](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)。使用目的地連接埠號碼來區分服務：
+ **連接埠 53** – DNS 查詢
+ **連接埠 88** – Kerberos 身分驗證
+ **連接埠 123** – NTP 時鐘同步
+ **連接埠 135、49152-65535** – RPC
+ **連接埠 389、636、3268、3269** – LDAP 查詢 （標準 LDAP 為 389 或 3268，LDAPS 為 636 或 3269)
+ **連接埠 445** – SMB 檔案共用 （群組政策）
+ **連接埠 464** – Kerberos 密碼變更
+ **連接埠 9389** – Active Directory Web Service

若要啟用和分析 VPC 流程日誌：
+ 為包含網域控制器 ENIs子網路啟用 VPC 流程日誌。
+ 依目的地連接埠篩選日誌，以識別流量模式。
+ 依期間內大多數封包和/或大多數位元組進行組織。
+ 分析來源 IP 地址，以判斷哪些機器產生最多流量。

### 步驟 3：使用流量鏡像擷取詳細的流量分析
<a name="ms_ad_high_cpu_step3"></a>

VPC 流程日誌提供有關請求實際內容的有限資訊。如需更詳細的分析，請考慮流量鏡像以擷取完整的封包資料。如需詳細資訊，請參閱[開始使用流量鏡射來監控網路流量](https://docs.aws.amazon.com/vpc/latest/mirroring/traffic-mirroring-getting-started.html)。當您需要分析時，這特別有用：
+ LDAP 篩選條件的複雜性和效率
+ 特定 DNS 查詢模式
+ 身分驗證請求詳細資訊

流量鏡射可讓您擷取傳送至網域控制站執行個體的完整網路封包，對導致高 CPU 使用率的流量進行深入分析。

### 步驟 4：調查來源應用程式並最佳化流量
<a name="ms_ad_high_cpu_step4"></a>

識別來源機器和流量模式後，請調查產生流量的應用程式：
+ **檢閱應用程式組態** – 檢查應用程式是否進行效率不佳的查詢或請求過多。避免將應用程式硬式編碼為單一網域控制器。
+ **分析 LDAP 查詢** – 效率不佳的 LDAP 查詢是高網域控制器 CPU 的最常見原因。尋找可能受益於屬性索引的複雜篩選條件。
+ **檢查 DNS 快取** – 確認已啟用 DNS 用戶端快取，以減少重複的查詢。
+ **檢查身分驗證模式** – 識別服務帳戶是否過於頻繁地進行身分驗證。

## 解決策略
<a name="ms_ad_high_cpu_resolution"></a>

根據您的調查，實作適當的最佳化策略：

### 最佳化應用程式
<a name="ms_ad_high_cpu_optimize_apps"></a>
+ **最佳化 LDAP 查詢** – 重寫複雜的 LDAP 查詢。避免將搜尋基礎設定為網域的根目錄，而是將其設定為您要搜尋物件所在的 OU。避免使用執行子樹狀目錄搜尋的搜尋範圍。請改用基本或單一層級範圍。在篩選條件中包含物件類別。例如 `(objectClass=user)` 或 `(objectClass=computer)`。除非屬性已編製索引，否則請避免在篩選條件中使用萬用字元。如果需要萬用字元掃描，請新增索引。如需詳細資訊，請參閱[擴展您的 AWS Managed Microsoft AD 結構描述](ms_ad_schema_extensions.md)。不要編製所有內容的索引，因為索引程序也會增加 CPU 使用率。

  ```
  # Sample LDIF code to index the email attribute
  dn: CN=mail,CN=Schema,CN=Configuration,DC=yourdomain,DC=com
  changetype: modify
  replace: searchFlags
  searchFlags: 1
  ```
+ **啟用 DNS 用戶端快取** – 設定用戶端在本機快取 DNS 回應，以減少伺服器負載。
+ **實作連線集區** – 設定應用程式以重複使用 LDAP 連線，而不是為每個查詢建立新的連線。

### 擴展您的目錄基礎設施
<a name="ms_ad_high_cpu_scale"></a>

如果流量最佳化無法解決高 CPU 使用率：
+ **新增更多網域控制站** – 透過部署其他網域控制站來分配負載來橫向擴展。如需詳細資訊，請參閱[部署 AWS Managed Microsoft AD 的其他網域控制站](ms_ad_deploy_additional_dcs.md)。
+ **升級至 Enterprise Edition** – 如果使用 Standard Edition，請升級至 Enterprise Edition，以提高 CPU 容量和效能。如需詳細資訊，請參閱[升級您的 AWS Managed Microsoft AD](ms_ad_upgrade_edition.md)。如果已經使用 Enterprise Edition，請聯絡 [AWS 支援](https://docs.aws.amazon.com//awssupport/latest/user/case-management.html) 以增加容量。

如需 AWS Managed Microsoft AD 版本的定價資訊，請參閱 [Directory Service 定價](https://aws.amazon.com/directoryservice/pricing/#Comparison_Table)。