View a markdown version of this page

问题排查 AWS 托管微软 AD 高 CPU 利用率 - AWS Directory Service

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

问题排查 AWS 托管微软 AD 高 CPU 利用率

以下内容可以帮助您解决 AWS 托管的微软 AD 域控制器上的 CPU 过高问题。

寻找根本原因

排除高 CPU 利用率故障的第一步是分析 CloudWatch 指标,以确定可以解释资源消耗增加的模式。

第 1 步:审查 Directory Service CloudWatch 指标

使用 CloudWatch 指标监控您的 AWS 托管微软广告性能,以识别与高 CPU 使用率相关的流量模式。有关查看和解释 Directory Service 指标的详细信息,请参阅CloudWatch 用于监控您的 AWS 托管 Microsoft AD 域控制器的性能

在以下可能解释 CPU 增长的关键指标中寻找转移模式:

  • 每秒 DNS 查询 — 突然的峰值可能表示 DNS 解析问题或应用程序配置错误。

  • Kerberos/NTLM 身份验证 — 来自用户登录或服务帐户的更高身份验证率。

  • 每秒 LDAP 查询 — 增加了来自应用程序或服务的 LDAP 流量。

将当前指标与历史基准进行比较,以确定高 CPU 利用率是何时开始的,并将其与特定的流量增长相关联。如果在指标中找不到相关性,则根本原因不是流量的大幅增加。相反,根本原因可能是 LDAP 查询效率低下,跳至。第 3 步:使用流量镜像进行详细的流量分析

第 2 步:使用 VPC 流日志识别源计算机

VPC 流日志提供了一种有效的方法来识别向您的域控制器生成流量的计算机的源 IP 地址。有关更多信息,请参阅使用 VPC 流日志记录 IP 流量。使用目标端口号来区分服务:

  • 端口 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 — 活动目录网络服务

要启用和分析 VPC 流日志,请执行以下操作:

  • 为包含您的域控制器 ENI 的子网启用 VPC 流日志。

  • 按目标端口筛选日志以识别流量模式。

  • 按 and/or 大多数数据包整理一段时间内的大多数字节。

  • 分析源 IP 地址以确定哪些计算机产生的流量最多。

第 3 步:使用流量镜像进行详细的流量分析

VPC 流日志提供的有关请求实际内容的有限信息。要进行更详细的分析,请考虑使用流量镜像来捕获完整的数据包数据。有关更多信息,请参阅开始使用流量镜像监控网络流量。当你需要分析时,这特别有用:

  • LDAP 过滤器的复杂性和效率

  • 特定的 DNS 查询模式

  • 身份验证请求详情

流量镜像允许您捕获发送到域控制器实例的完整网络数据包,从而对导致 CPU 使用率高的流量进行深入分析。

第 4 步:调查源应用程序并优化流量

确定源计算机和流量模式后,调查生成流量的应用程序:

  • 查看应用程序配置 -检查应用程序的查询效率低下或请求过多。避免将应用程序硬编码到单个域控制器。

  • 分析 LDAP 查询 — LDAP 查询效率低下是域控制器 CPU 过高的最常见原因。寻找可以从属性索引中受益的复杂过滤器。

  • 检查 DNS 缓存 -确认启用 DNS 客户端缓存以减少重复查询。

  • 检查身份验证模式 -确定服务帐号是否过于频繁地进行身份验证。

解决策略

根据您的调查,实施适当的优化策略:

优化应用程序

  • 优化 LDAP 查询 -重写复杂的 LDAP 查询。避免将搜索库设置为域的根目录,而是将其配置为要搜索的对象所在的 OU。避免使用执行子树搜索的搜索范围。改为使用基础范围或单级作用域。将对象类包含在过滤器中。例如,(objectClass=user)(objectClass=computer)。除非对属性进行了索引,否则请避免在过滤器中使用通配符。如果需要通配符扫描,请添加索引。有关更多信息,请参阅 扩展你的 AWS 托管微软 AD 架构。不要索引所有内容,因为索引过程也会增加 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 连接,而不是为每个查询创建新连接。

扩展您的目录基础架构

如果流量优化无法解决 CPU 使用率过高的问题:

有关 AWS 托管 Microsoft AD 版本的定价信息,请参阅Directory Service 定价