我的 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 权限”部分。
完成以下步骤:
- 打开 AWS Systems Manager 控制台。
- 在 Regions(区域)列表中,选择您的 AWS 区域。
- 在导航窗格中,展开 Shared Resources(共享资源),然后选择 Documents(文档)。
- 在搜索栏中,输入 AWSSupport-TroubleshootElasticBeanstalk,然后选择该运行手册。
- 选择 Execute automation(执行自动化)。
- 选择 Execute(执行)。有关运行手册执行的操作列表,请参阅 AWSSupport-TroubleshootWindowsPerformance 中的“文档步骤”。
- 查看 Outputs(输出)以了解详细的执行结果。
手动进行故障排除
使用任务管理器找出高 CPU 利用率的来源
完成以下步骤:
- 使用远程桌面协议 (RDP) 连接到您的实例。
- 要按 CPU 进行排序,请打开任务管理器,然后选择 CPU 列。
- 识别 CPU 利用率高的进程,以确定进程是否使用了预期的 CPU 量。
- 对 CPU 使用量超出预期的应用程序进行故障排除。
如果应用程序使用预期的 CPU 量,请更改您的实例类型。有关详细信息,请参阅如何调整我的 EC2 Windows 实例的大小或更改 EC2 Windows 实例类型?
使用进程资源管理器找出高 CPU 利用率的来源
进程资源管理器是一个 Sysinternals Microsoft 实用程序。有关详细信息,请参阅 Microsoft Learn 网站上的 Sysinternals。
完成以下步骤:
- 将进程资源管理器下载到您的实例。要下载,请参阅 Microsoft Ignite 网站上的进程资源管理器。
- 以管理员身份启动应用程序。
- 选择 CPU 列以按使用情况对进程进行排序。
- 选择 View(查看)、Show Process Tree(显示进程树)以查看进程之间的父子关系。
**注意:**选择 Threads(线程)选项卡,以便更详细地了解该进程在导致 CPU 利用率过高时正在执行的操作。
如果您仍然无法确定 CPU 利用率过高的原因,请使用性能监视器和日志性能分析 (PAL) 工具。性能监视器是一个内置的 Windows 工具。
(可选)使用性能监视器识别 CPU 利用率高的来源
完成以下步骤:
- 使用 RDP 连接到实例。
- 打开“性能监视器”,然后展开 Data Collector Sets(数据收集器集)。
- 打开 User Defined(用户定义)的上下文菜单,然后选择 New(新建)、Data Collector Set(数据收集器集)。
对于 Name(名称),输入新数据收集器集的名称,然后选择 Create manually (Advanced)(手动创建(高级))。
- 选择 Next(下一步)。
- 对于创建数据日志,选择性能计数器,然后选择下一步。
- 选择 Add(添加)。
对于 Available counters(可用计数器),选择 Process(进程)、% Processor Time(处理器时间百分比)。
对于 Instances of selected object(选定对象的实例),选择 All instances(所有实例)。
选择 Add(添加)。
针对要添加的任何其他性能计数器重复此步骤。
- 选择确定。
- (可选)将采样间隔和单位设置为您的首选值。
- 选择 Next(下一步)。
- 选择一个至少有 1 GiB 可用空间的位置来存储数据,然后选择 Next(下一步)。
- 选择 Save and close(保存并关闭),然后选择 Finish(完成)。
注意: 如果 CPU 达到峰值,则选择 Start this data collector set now(立即启动此数据收集器集)。然后,选择 Finish(完成)。
性能监控工具完成数据收集后,您可以打开并查看报告,以确定哪些进程使用实例 CPU。然后,使用该信息对使用 CPU 的特定应用程序进行故障排除。
(可选)使用日志性能分析 (PAL) 生成报告以进行分析
**注意:**以下步骤包括使用托管在 GitHub 上的开源软件。
PAL 是第三方工具,您可以使用它从性能监控文件生成报告,以便进行更详细的分析。要使用 PAL,请完成以下步骤:
- 安装 PAL,然后启动 PAL 向导并选择 Next(下一步)。
- 对于 Performance Counter Log(性能计数器日志),输入性能监视器文件的路径,然后选择 Next(下一步)。
- 对于 Title(标题),选择 System Overview(系统概述),然后选择 Next(下一步)。
注意: 系统概述提供了一般的操作系统性能分析。
- 在 Questions(问题)部分中,查看并回答每个条目的问题。对于操作系统,请从列表中选择最新的操作系统 (OS) 版本,该版本的位版本与您的实例相匹配。选择 Next(下一步)。
- 选择处理计数器日志中的所有计数器,然后选择下一步。
注意: 处理所有计数器实例可能会占用大量资源。
- 在 Output Folder(输出文件夹)中,选择 PAL 报告的输出目录。
- 对于 HTML 报告,选择 HTML 报告,然后选择下一步。
- 选择 Next(下一步),然后选择 Finish(完成)。
- 查看 PAL 报告的进程和处理器部分,以确定哪些进程使用实例的 CPU。
相关信息
我怎样才能知道我的 T2 或 T3 EC2 Windows 实例上的 CPU 是否受到限制?
运行由 Systems Manager Automation 支持的自动化操作
设置自动化