你好,
在這種情況下,Active Directory 網域控制站的 CPU 使用率飆高,通常是因為某些舊版或設計不良的應用程式執行了效率極差的 LDAP 查詢,例如過度使用 LDAP_MATCHING_RULE_IN_CHAIN 或未加索引的屬性篩選。要精準識別並排查這些查詢,建議先在網域控制站上啟用 LDAP 查詢記錄,再配合效能監控工具進行分析。
首先,請在網域控制站的登錄檔中設定 LDAP 查詢記錄。進入 HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics,將 16 LDAP Interface Events 的值設為 2 或更高。這樣會在事件檔案中記錄下執行時間過長或資源消耗過大的 LDAP 查詢。事件會出現在 Directory Service 事件檔案中,事件 ID 例如 1644 就能顯示查詢的詳細內容,包括 Base DN、Filter、Attributes 以及執行時間。
接著,使用 Windows Performance Monitor (perfmon) 或 Process Explorer 來觀察 lsass.exe 的 CPU 使用情況,並確認是否與特定時間的事件 ID 1644 相符。這樣可以鎖定是哪個應用程式或服務在執行問題查詢。
當找到問題查詢後,通常需要在 Active Directory 中為相關屬性建立索引,以減少全域掃描。這可以透過 Active Directory Schema 管理工具,在屬性上勾選 “Index this attribute”。同時,建議與應用程式開發團隊合作,優化 LDAP 查詢語法,避免使用過度複雜的篩選條件或未限制範圍的查詢。
若要防止這些查詢持續影響效能,可以考慮在應用程式伺服器端啟用快取機制,減少對網域控制站的即時查詢壓力。另外,也可以透過 Network Monitor 或 Wireshark 在網域控制站上擷取 LDAP 封包,進一步分析來源 IP 與查詢模式,快速定位問題來源。
總結來說,核心步驟是:啟用 LDAP 查詢記錄、分析事件 ID 1644、比對 CPU 使用情況、建立必要索引並優化應用程式查詢。這樣才能有效降低網域控制站的負載並防止效能瓶頸。
希望這裡的內容對您有幫助。如果它能幫助您更深入地了解問題,請採納此答案。如果您還有其他問題,歡迎留言。祝您愉快!
HP.