当我的 CPU 没有受到限制时,如何诊断 EC2 Windows 实例上的高 CPU 利用率?

2 分钟阅读
0

我的 Amazon Elastic Compute Cloud(Amazon EC2)Windows 实例的 CPU 利用率高,但实例的 CPU 并未受到限制。如何诊断高 CPU 利用率?

简短描述

您可以使用实例中的任务管理器查看使用最多 CPU 的进程。如果需要,您可以使用性能监视器或进程资源管理器发现导致高 CPU 利用率的进程。

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

解决方法

使用任务管理器确定造成高 CPU 利用率的原因

  1. 使用远程桌面协议 (RDP) 连接到您的实例
  2. 打开任务管理器,然后选择 CPU 列以按 CPU 排序。
  3. 分析具有高 CPU 利用率的进程,以确定它们的 CPU 使用量是否符合预期。
  4. 对 CPU 使用量比预期多的应用程序进行故障排除。

如果所有应用程序的 CPU 使用量都符合预期,请考虑更改实例类型。有关更多信息,请参阅如何为我的 EC2 Windows 实例获取更多 CPU 和内存?

使用进程资源管理器确定造成高 CPU 利用率的原因

进程资源管理器是 Microsoft 提供的 SysInternals 实用工具。要使用进程资源管理器,请按照下列步骤操作:

  1. 将进程资源管理器下载到您的实例。
  2. 以管理员身份启动该应用程序。
  3. 选择 CPU 列以按利用率对进程进行排序。
  4. 选择查看,然后选择显示进程树以查看进程之间的父子关系。

使用性能监视器确定造成高 CPU 利用率的原因

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

要使用性能监视器,请按照下列步骤操作:

  1. 使用 RDP 连接到您的实例
  2. 打开性能监视器,然后展开数据收集器集
  3. 打开用户定义的上下文菜单(右键单击),然后选择新建,再选择数据收集器集
    对于名称,输入新数据收集器集的名称。
    选择手动创建(高级)
  4. 选择下一步
  5. 对于创建数据日志,选择性能计数器,然后选择下一步
  6. 选择添加
    对于可用计数器,选择 Process,然后选择 % Processor Time
    对于选定对象的实例,选择所有实例
    选择添加
    对要添加的任何其他性能计数器重复此步骤。
  7. 选择确定
  8. (可选)根据需要设置采样间隔单位
  9. 选择下一步
  10. 选择具有至少 1 GB 可用空间的位置来存储数据,然后选择下一步
  11. 选择 Save and close(保存并关闭),然后选择 Finish(完成)。
    注意:如果 CPU 达到峰值,请选择 Start this data collector set now(立即启动此数据收集器集),然后选择 Finish(完成)。

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

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

**注意:**这些可选步骤包括使用 GitHub 托管的开源软件。

PAL 是第三方工具,您可以使用它从性能监视器文件生成报告,以进行更深入的分析。若要使用 PAL,请按照下列步骤操作:

  1. 安装 PAL,启动 PAL 向导,然后选择下一步
  2. 对于性能计数器日志,输入性能监视器文件的路径,然后选择下一步
  3. 对于标题,选择系统概览,然后选择“下一步”。
    注意:系统概览提供总体操作系统性能分析。
  4. 查看并回答问题部分中每个条目的问题。对于操作系统,从列表中选择最新并且与您实例的位数匹配的操作系统版本。选择下一步
  5. 选择 Process all of the counters in the counter log(处理计数器日志中的所有计数器),然后选择 Next(下一步)。
    注意:处理所有计数器实例可能需要使用大量资源。
  6. 对于 Output Folder(输出文件夹),选择 PAL 报告的输出目录。
  7. 对于 HTML 报告,请选择 HTML 报告,然后选择下一步
  8. 选择下一步,然后选择完成
  9. 查看 PAL 报告的进程处理器部分,以确定哪些进程正在使用实例的 CPU。

相关信息

如何确定 T2 或 T3 EC2 Windows 实例上的 CPU 是否受到限制?

AWS 官方
AWS 官方已更新 1 年前