跳至内容

如何诊断 CPU 未遭遇节流时 Amazon EC2 Windows 实例上的 CPU 时用率过高的问题?

2 分钟阅读
0

我的 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例的 CPU 利用率很高。但是,Amazon EC2 并没有限制我的 EC2 实例的 CPU。

简短描述

要自动识别 EC2 实例上 CPU 使用率高的原因,请运行 AWSSupport-TroubleshootWindowsPerformance 运行手册。或者,手动识别 CPU 使用率高的进程。

解决方法

运行 AWSSupport-TroubleshootWindowsPerformance 运行手册

先决条件: 确保您的 AWS Identity and Access Management (IAM) 用户或角色拥有运行该运行手册所需的权限。有关更多信息,请参阅 AWSSupport-TroubleshootWindowsPerformance 中所需的 IAM 权限。

要运行该运行手册,请参阅 AWSSupport-TroubleshootWindowsPerformance 中的说明。

手动识别高 CPU 使用率

使用任务管理器识别占用高 CPU 的进程

完成以下步骤:

  1. 使用远程桌面协议 (RDP) 连接到您的实例。
  2. 选择 Start(开始)菜单,然后打开 Task Manager(任务管理器)。
  3. 要按 CPU 对进程排序,请选择 CPU 列。
  4. 检查 CPU 使用率最高的进程,以确定它们是否使用了预期的 CPU 量。如果您的应用程序使用的 CPU 持续超过预期,则更改您的实例类型为具有更多 CPU 的实例类型。
  5. 对 CPU 使用量超出预期的应用程序进行故障排除。

使用进程资源管理器识别占用高 CPU 的进程

完成以下步骤:

  1. 要将进程资源管理器下载到您的实例上,请参阅 Microsoft 网站上的 Process Explorer v17.11(进程资源管理器 v17.11)。
  2. 以管理员身份启动进程资源管理器。
  3. 选择 CPU 列以按 CPU 使用率对进程排序。
  4. 要查看进程之间的父子关系,请选择 View(查看),然后选择 Show Process Tree(显示进程树)。
  5. 要更详细地了解进程如何导致高 CPU 使用率,请选择 Threads(线程)选项卡。

(可选)使用性能监测仪识别占用高 CPU 的进程

完成以下步骤:

  1. 使用 RDP 连接到实例。
  2. 选择 Start(开始)菜单,然后打开 Performance Monitor(性能监测仪)。
  3. 在导航窗格中,展开 Data Collector Sets(数据收集器集)。
  4. 打开 User Defined(用户定义)的上下文(右键单击)菜单,然后选择 New(新建)。
  5. 选择 Data Collector Set(数据收集器集)。
  6. 对于 Name(名称),输入数据收集器集的名称,然后选择 Create manually (Advanced)(手动创建(高级))。
  7. 选择 Next(下一步)。
  8. 对于 Create data logs(创建数据日志),选择 Performance Counter(性能计数器),然后选择 Next(下一步)。
  9. 选择 Add(添加),然后配置以下设置:
    对于 Available counters(可用计数器),选择 Process(进程)和 % Processor Time(处理器时间百分比)。
    对于 Instances of selected object(选定对象的实例),选择 All instances(所有实例)。
  10. 选择 Add(添加)。
  11. (可选)重复步骤 9-10 以添加其他性能计数器。
  12. 选择 Ok(确定)。
  13. (可选)配置 Sample interval(采样间隔)和 Units(单位)。
  14. 选择 Next(下一步)。
  15. 在 Where would you like the data to be saved(您希望将数据保存到哪里)中,选择一个至少有 1GB 可用空间的位置。
  16. 选择 Next(下一步),然后选择 Save and close(保存并关闭)。
  17. 选择 Finish(完成)。
  18. 当 CPU 达到峰值时,打开 User defined(用户定义)下所列数据收集器集的上下文(右键单击)菜单。然后,选择 Start(启动)。
  19. 等待一分钟,然后打开数据收集器集的上下文(右键单击)菜单。然后,选择 Stop(停止)。

性能监控工具完成数据收集后,打开并查看报告,以识别占用高 CPU 的进程。

(可选)使用 PAL 工具生成报告以进行分析

注意: 日志性能分析 (PAL) 是一个第三方工具,可从您的性能监测仪文件生成报告,以便进行更详细的分析。

要使用 PAL,请完成以下步骤:

  1. 要安装 PAL,请参阅 GitHub 网站上的 Performance Analysis of Logs (PAL) Tool(日志性能分析 (PAL) 工具)。

  2. 启动 PAL 向导,然后选择 Next(下一步)。

  3. 对于 Performance Counter Log(性能计数器日志),输入性能监视器文件的路径,然后选择 Next(下一步)。

  4. 对于 Title(标题),选择 System Overview(系统概述),然后选择 Next(下一步)。

    注意: 系统概述提供一般的操作系统 (OS) 性能分析。

  5. 完成 Questions(问题)部分。对于 OS(操作系统),选择与您的实例位版本相匹配的最新操作系统版本。

  6. 选择 Next(下一步)。

  7. 选择 Process all of the counters in the counter log(处理计数器日志中的所有计数器),然后选择 Next(下一步)。
    注意: PAL 可能需要大量资源来处理所有计数器实例。

  8. 对于 Output Folder(输出文件夹),选择 PAL 报告的输出目录。

  9. 对于 HTML Report(HTML 报告),选择 HTML Report(HTML 报告),然后选择 Next(下一步)。

  10. 选择 Next(下一步),然后选择 Finish(完成)。

  11. 查看 PAL 报告的 **Process(进程)**和 Processor(处理器)部分,以识别占用高 CPU 的进程。

排查高 CPU 问题

要对高 CPU 使用率问题进行故障排除,请参阅如何对 Amazon EC2 Windows 实例的高 CPU 使用率问题进行故障排除?

相关信息

我怎样才能知道我的 T2 或 T3 EC2 Windows 实例上的 CPU 是否遭遇节流?