跳至内容

如何诊断 CPU 未受到限制时 EC2 Windows 实例上的 CPU 利用率过高的问题?

2 分钟阅读
0

我的 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例的 CPU 利用率很高,但是实例的 CPU 并未受到限制。我想诊断 CPU 利用率过高的问题。

解决方法

要确定您的高 CPU 利用率,请运行 AWSSupport-TroubleshootWindowsPerformance 运行手册,或者手动识别 CPU 利用率高的进程。

确定导致 CPU 利用率高的特定进程后,对该特定应用程序进行故障排除。

运行 AWSSupport-TroubleshootWindowsPerformance 运行手册

**先决条件:**在启动运行手册之前,请确保您的 AWS Identity and Access Management (IAM) 用户或角色具有所需的权限。有关详细信息,请参阅 AWSSupport-TroubleshootWindowsPerformance 中的“所需的 IAM 权限”部分。

完成以下步骤:

  1. 打开 AWS Systems Manager 控制台
  2. Regions(区域)列表中,选择您的 AWS 区域。
  3. 在导航窗格中,展开 Shared Resources(共享资源),然后选择 Documents(文档)。
  4. 在搜索栏中,输入 AWSSupport-TroubleshootElasticBeanstalk,然后选择该运行手册。
  5. 选择 Execute automation(执行自动化)。
  6. 选择 Execute(执行)。有关运行手册执行的操作列表,请参阅 AWSSupport-TroubleshootWindowsPerformance 中的“文档步骤”。
  7. 查看 Outputs(输出)以了解详细的执行结果。

手动进行故障排除

使用任务管理器找出高 CPU 利用率的来源

完成以下步骤:

  1. 使用远程桌面协议 (RDP) 连接到您的实例
  2. 要按 CPU 进行排序,请打开任务管理器,然后选择 CPU 列。
  3. 识别 CPU 利用率高的进程,以确定进程是否使用了预期的 CPU 量。
  4. 对 CPU 使用量超出预期的应用程序进行故障排除。

如果应用程序使用预期的 CPU 量,请更改您的实例类型。有关详细信息,请参阅如何调整我的 EC2 Windows 实例的大小或更改 EC2 Windows 实例类型?

使用进程资源管理器找出高 CPU 利用率的来源

进程资源管理器是一个 Sysinternals Microsoft 实用程序。有关详细信息,请参阅 Microsoft Learn 网站上的 Sysinternals

完成以下步骤:

  1. 将进程资源管理器下载到您的实例。要下载,请参阅 Microsoft Ignite 网站上的进程资源管理器
  2. 以管理员身份启动应用程序。
  3. 选择 CPU 列以按使用情况对进程进行排序。
  4. 选择 View(查看)、Show Process Tree(显示进程树)以查看进程之间的父子关系。

**注意:**选择 Threads(线程)选项卡,以便更详细地了解该进程在导致 CPU 利用率过高时正在执行的操作。

如果您仍然无法确定 CPU 利用率过高的原因,请使用性能监视器和日志性能分析 (PAL) 工具。性能监视器是一个内置的 Windows 工具。

(可选)使用性能监视器识别 CPU 利用率高的来源

完成以下步骤:

  1. 使用 RDP 连接到实例
  2. 打开“性能监视器”,然后展开 Data Collector Sets(数据收集器集)。
  3. 打开 User Defined(用户定义)的上下文菜单,然后选择 New(新建)、Data Collector Set(数据收集器集)。
    对于 Name(名称),输入新数据收集器集的名称,然后选择 Create manually (Advanced)(手动创建(高级))。
  4. 选择 Next(下一步)。
  5. 对于创建数据日志,选择性能计数器,然后选择下一步
  6. 选择 Add(添加)。
    对于 Available counters(可用计数器),选择 Process(进程)、% Processor Time(处理器时间百分比)。
    对于 Instances of selected object(选定对象的实例),选择 All instances(所有实例)。
    选择 Add(添加)。
    针对要添加的任何其他性能计数器重复此步骤。
  7. 选择确定
  8. (可选)将采样间隔单位设置为您的首选值。
  9. 选择 Next(下一步)。
  10. 选择一个至少有 1 GiB 可用空间的位置来存储数据,然后选择 Next(下一步)。
  11. 选择 Save and close(保存并关闭),然后选择 Finish(完成)。
    注意: 如果 CPU 达到峰值,则选择 Start this data collector set now(立即启动此数据收集器集)。然后,选择 Finish(完成)。

性能监控工具完成数据收集后,您可以打开并查看报告,以确定哪些进程使用实例 CPU。然后,使用该信息对使用 CPU 的特定应用程序进行故障排除。

(可选)使用日志性能分析 (PAL) 生成报告以进行分析

**注意:**以下步骤包括使用托管在 GitHub 上的开源软件。

PAL 是第三方工具,您可以使用它从性能监控文件生成报告,以便进行更详细的分析。要使用 PAL,请完成以下步骤:

  1. 安装 PAL,然后启动 PAL 向导并选择 Next(下一步)。
  2. 对于 Performance Counter Log(性能计数器日志),输入性能监视器文件的路径,然后选择 Next(下一步)。
  3. 对于 Title(标题),选择 System Overview(系统概述),然后选择 Next(下一步)。
    注意: 系统概述提供了一般的操作系统性能分析。
  4. Questions(问题)部分中,查看并回答每个条目的问题。对于操作系统,请从列表中选择最新的操作系统 (OS) 版本,该版本的位版本与您的实例相匹配。选择 Next(下一步)。
  5. 选择处理计数器日志中的所有计数器,然后选择下一步
    注意: 处理所有计数器实例可能会占用大量资源。
  6. Output Folder(输出文件夹)中,选择 PAL 报告的输出目录。
  7. 对于 HTML 报告,选择 HTML 报告,然后选择下一步
  8. 选择 Next(下一步),然后选择 Finish(完成)。
  9. 查看 PAL 报告的进程处理器部分,以确定哪些进程使用实例的 CPU。

相关信息

我怎样才能知道我的 T2 或 T3 EC2 Windows 实例上的 CPU 是否受到限制?

运行由 Systems Manager Automation 支持的自动化操作

设置自动化