为什么 Process Explorer 会导致高功率 EC2 Windows 实例中某些应用程序/基本 UI 功能出现高度针对性的故障?

为什么 Process Explorer 会导致高功率 EC2 Windows 实例中某些应用程序/基本 UI 功能出现高度针对性的故障?

更新:

我已经确定Process Explorer 本身- 我正在使用的程序调试性能问题 - 似乎是原因的问题。

请参阅最后的注释和更新后的问题。


我正在从启动 EBS 卷运行高功率(cc2.8xlarge)Amazon AWS EC2 Windows 实例,该卷配置为 2500 PIOPS,它是根据上一个启动卷的快照创建的。

我使用该实例的目的是将其用作开发工作站,安装许多开发工具,例如 Visual Studio、本地 XAMPP 堆栈等。我在机器上安装了 40 多个程序。

该实例作为开发机器的可用性通常相当好。RDP 延迟足够小。我在一些最繁重的开发任务中连续几个小时使用它,没有出现任何问题。

因此,我刚刚购买了一个预留实例,并选择使用 Windows Server 2012 AMI 从头开始​​重建我的开发机器。

在过去一周安装了我所期望/需要的所有开发应用程序之后,这台机器似乎再次运行良好,我一次可以连续工作一个小时,而没有出现繁重的开发工作问题。

但是,我继续遇到灾难性的操作系统可用性问题,这可能会阻止我将这台机器用作开发机器。如果有一个容易识别的来源,我想追踪问题的根源。(更新:我已经追踪到来源进程探索器,我使用的正是这个程序调试问题。请参阅末尾的更新。

问题如下。(这些是一些主要示例)

  • 一些应用程序在响应一段时间后,突然开始对基本用户界面操作(例如单击菜单和按 Ctrl-Tab 在打开的文档之间切换)响应非常非常慢。UltraEdit 和 PhpEd 就是两个例子。菜单通常需要约 2 秒才能显示,在打开的文档之间切换需要约 4 秒。此外,编辑器中的插入点移动延迟最多约 2 秒。

  • 我正在使用它来帮助调试问题似乎可以正常运行几分钟,但 Process Explorer 本身多次完全挂起。它与上述问题同时挂起。当它挂起时,它 100% 无响应。单击其任务栏图标既不会使其升至顶部也不会使其下降,并且其可视区域只填充了一个部分包含纯白色和部分包含不可读且从未改变的不完整窗口小部件的区域。等待 10 分钟并不能解决问题。尝试通过右键单击其任务栏图标并选择“关闭窗口”强制退出 Process Explorer,大约需要整整 5 分钟才能退出(Process Explorer 本身不能用于退出 Process Explorer,它被注册为任务管理器的替代品)。

  • 其他程序在这段时间内运行良好。例如,Chrome 选项卡可以非常快速地来回切换,菜单可以立即弹出,网页可以快速加载,在浏览器内输入表单/网络应用程序也可以快速运行。另一个运行流畅的应用程序示例是 Filemaker - 它的菜单可以立即打开,并且在此应用程序中切换视图也可以快速进行。其他应用程序也可以正常运行。此外,应用程序之间的切换也可以快速进行。

只有少数应用程序存在该问题,上面给出了一些主要示例。

起初我以为 EBS IOPS 可能存在问题。因此,我运行了性能监视器,并实时查看了“磁盘传输/秒”监视器。该测量值从未接近为 EBS 卷配置的 2500 PIOPS。

RAM 也远低于限制(60 GB 中已使用约 10 GB)。

我确实注意到了在出现问题的时间段内,CPU 核心(共 32 个逻辑核心)完全处于 100% 的抖动状态(即 ~3.1%)。这似乎表明单个 CPU 核心正在处理菜单/在打开的文档之间切换(仅适用于某些应用程序)/管理 Process Explorer 用户界面,并且由于某种原因,这个单个核心在出现问题的时间段内被禁用。

另请注意,我有一个台式工作站(Windows 7),我也通过远程连接将其用作开发机器,安装了一组几乎相同的程序,并且这个台式工作站没有出现我上面讨论的任何问题。我已经大量使用它一年多了。

如果您能提供任何有关问题根源的建议,或者我可能采取哪些步骤来调查问题根源,我将不胜感激。谢谢。


笔记:经过广泛的测试和调查,我注意到当我退出时进程探索器,问题消失并且系统性能恢复正常,然后当我再次运行 Process Explorer 时它很快又出现(注意:再次,性能问题仅出现在一部分应用程序中 - 其他应用程序在同一时期内运行良好)。

因此,我的问题(幸运的是)更加具体:为什么在高功率的 EC2 Windows 实例中,Process Explorer 会导致某些应用程序(包括其自身)和基本 UI 功能出现高度针对性的故障?

相关内容