我的 Amazon Elastic Compute Cloud(Amazon EC2)Windows 实例的 CPU 利用率很高,但是实例的 CPU 并未受到限制。如何诊断 CPU 利用率过高的问题?
简短描述
您可以使用实例中的任务管理器来查看占用 CPU 最多的进程。如有必要,您可以使用性能监视器或进程资源管理器来发现导致 CPU 利用率高的进程。
确定导致 CPU 利用率高的特定进程后,可以对该应用程序进行故障排查。
解决方案
使用任务管理器找出高 CPU 利用率的来源
- 使用远程桌面协议(RDP)连接到您的实例。
- 打开任务管理器,然后选择 CPU 列,以按 CPU 进行排序。
- 研究 CPU 利用率较高的任何进程,以确定它们是否使用了预期的 CPU 量。
- 对所有 CPU 使用量超出预期的应用程序进行故障排查。
如果所有应用程序都使用预期的 CPU 量,请考虑更改实例类型。有关更多信息,请参阅 How do I get more CPU and memory for my EC2 Windows instance?
使用进程资源管理器找出高 CPU 利用率的来源
进程资源管理器是微软提供的 SysInternals 实用程序。要使用进程资源管理器,请执行以下步骤:
- 将进程资源管理器下载到您的实例。
- 以管理员身份启动应用程序。
- 选择 CPU 列以按使用情况对进程进行排序。
- 选择查看,显示进程树 以查看进程之间的父子关系。
使用性能监视器识别 CPU 利用率高的来源
如果您仍然无法确定 CPU 利用率过高的原因,请使用性能监视器和日志性能分析(PAL)工具(可选)。性能监视器是一个内置的 Windows 工具。
要使用性能监视器,请执行以下步骤:
- 使用 RDP 连接到您的实例。
- 打开“性能监视器”,然后展开数据收集器集。
- 打开用户定义的上下文(右键单击)菜单,然后选择新建,数据收集器集。
在名称中,输入新数据收集器集的名称。
选择手动创建(高级)。
- 选择下一步。
- 对于创建数据日志,选择性能计数器,然后选择下一步。
- 选择添加。
对于可用计数器,选择进程、处理器时间百分比。
对于选定对象的实例,选择所有实例。
选择添加。
针对要添加的任何其他性能计数器重复此步骤。
- 选择确定。
- (可选)将采样间隔和单位设置为您的首选值。
- 选择下一步。
- 选择一个至少有 1 GiB 可用空间的位置来存储数据,然后选择下一步。
- 选择保存并关闭,然后选择完成。
注意: 如果 CPU 达到峰值,请选择立即启动此数据收集器集,然后选择完成。
性能监控工具完成数据收集后,您可以打开并查看报告,以确定哪些进程正在使用实例 CPU。然后,使用该信息对使用 CPU 的特定应用程序进行故障排查。
(可选)使用日志性能分析(PAL)生成报告以进行分析
**注意:**这些可选步骤包括使用托管在 GitHub 上的开源软件。
PAL 是第三方工具,您可以使用它从性能监控文件生成报告,以便进行更深入的分析。要使用 PAL,请按照以下步骤操作:
- 安装 PAL,启动 PAL 安装向导,然后选择下一步。
- 在性能计数器日志中,输入性能监控器文件的路径,然后选择下一步。
- 对于标题,选择系统概述,然后选择“下一步”。
注意: 系统概述提供了一般的操作系统性能分析。
- 在问题 部分,查看并回答每个条目的问题。对于操作系统,请从列表中选择最新的操作系统版本,该版本的位版本与您的实例相匹配。选择下一步。
- 选择处理计数器日志中的所有计数器,然后选择下一步。
注意: 处理所有计数器实例可能会占用大量资源。
- 在 Output Folder(输出文件夹)中,选择 PAL 报告的输出目录。
- 对于 HTML 报告,选择 HTML 报告,然后选择下一步。
- 选择下一步,然后选择完成。
- 查看 PAL 报告的进程和处理器部分,以确定哪些进程正在使用实例的 CPU。
相关信息
怎样才能知道 T2 或 T3 EC2 Windows 实例上的 CPU 是否受到限制?