问题排查 - Amazon Elastic Compute Cloud

问题排查

以下是常见的错误和故障排除步骤。

调查应用程序性能问题

Elastic Graphics 使用实例网络将 OpenGL 命令发送到远程附加的显卡。此外,运行带有 Elastic Graphics 加速器的 OpenGL 应用程序的桌面通常使用远程访问技术来访问。确定性能问题是与 OpenGL 渲染相关还是与桌面远程访问技术相关,这一点非常重要。

OpenGL 渲染性能问题

OpenGL 渲染性能由 OpenGL 命令数量以及在远程实例上生成的帧数确定。

渲染性能可能会因以下因素而异:

  • Elastic Graphics 加速器性能

  • 网络性能

  • CPU 性能

  • 渲染模型,场景复杂性

  • OpenGL 应用程序行为

评估性能的一种简单方式是显示远程实例上渲染的帧数。Elastic Graphics 加速器在远程实例上最多显示 25 FPS,以实现最佳观感质量,同时减少网络使用量。

显示生成的帧数

  1. 在文本编辑器中打开以下文件。如果该文件不存在,请创建它。

    C:\Program Files\Amazon\EC2ElasticGPUs\conf\eg.conf
  2. 找到 [Application] 部分,如果不存在则添加,然后添加以下配置参数:

    [Application] show_fps=1
  3. 重新启动应用程序并再次检查 FPS。

如果在更新渲染场景时 FPS 达到了 15-25 FPS,则 Elastic Graphics 加速器在峰值性能工作。您遇到的其他性能问题可能与对实例桌面的远程访问相关。如果这种情况,请参阅“远程访问性能问题”部分。

如果 FPS 数低于 15,您可以尝试以下方法:

  • 通过选择更强大的图形加速器类型来改进 Elastic Graphics 加速器性能。

  • 使用以下提示改进整体网络性能:

    • 检查 Elastic Graphics 加速器终端节点的传入和传出带宽数量。可以使用以下 PowerShell 命令检索 Elastic Graphics 加速器终端节点:

      PS C:\> (Invoke-WebRequest http://169.254.169.254/latest/meta-data/elastic-gpus/associations/[ELASTICGPU_ID]).content
    • 从实例到 Elastic Graphics 加速器终端节点的网络流量与 OpenGL 应用程序生成的命令量相关。

    • 从 Elastic Graphics 加速器终端节点到实例的网络流量与图形加速器生成的帧数相关。

    • 如果您发现网络使用量达到了实例最大网络吞吐量,请尝试使用具有更高网络吞吐量限额的实例。

  • 提升 CPU 性能:

    • 除了 Elastic Graphics 加速器需求之外,应用程序可能还需要更多 CPU 资源。如果 Windows 任务管理器报告 CPU 资源占用率很高,请尝试使用具有更高 CPU 计算能力的实例。

远程访问性能问题

具有已附加 Elastic Graphics 加速器的实例可以使用不同的远程访问技术来访问。性能和质量根据以下情况而不同:

  • 远程访问技术

  • 实例性能

  • 客户端性能

  • 客户端与实例之间的网络延迟和带宽

可以选择的远程访问协议包括:

  • Microsoft 远程桌面连接

  • NICE DCV

  • VNC

有关优化的更多信息,请参阅特定协议。

解决不正常状态问题

如果 Elastic Graphics 加速器处于不正常状态,请使用以下故障排除步骤来解决问题。

检查实例配置

如果 Elastic Graphics 命令行工具 egcli.exe 返回类似于下述信息的输出,确保您的安全组配置正确并且您在启用了实例元数据服务的情况下启动了实例。

EG Version 1.0.7.4240 (Manager) / N/A (OpenGL Library) / N/A (OpenGL Redirector) EG Status: Out Of Service Something prevented the EG Infrastructure to work properly.

停止和启动实例

如果您的 Elastic Graphics 加速器处于不正常状态,最简单的选项是停止实例并重新启动它。有关更多信息,请参阅 停止和启动您的实例

警告

当您停止某个实例时,任何实例存储卷上的数据都将被擦除。要保留实例存储卷中的数据,请确保将其备份到持久性存储中。

验证已安装组件

打开 Windows 控制面板并确认以下组件已安装:

  • Amazon Elastic Graphics Manager

  • Amazon Elastic Graphics OpenGL 库

  • Amazon EC2 Elastic GPUs OpenGL Redirector

如果缺少其中任何项目,您必须手动安装。有关更多信息,请参阅 安装 Elastic Graphics 所需的软件

检查 Elastic Graphics 日志

打开 Windows 事件查看器,展开应用程序和服务日志部分,然后在以下事件日志中搜索错误:

  • EC2ElasticGPUs

  • EC2ElasticGPUs GUI

为什么我看到多个 ENI?

在具有 Elastic Graphics 加速器的 EC2 实例上调用 StartInstances 时,将在该实例上创建一个新的弹性网络接口 (ENI),以允许将 OpenGL 命令发送到远程连接的显卡。

如果您短时间内(几秒钟或更短时间)在同一 EC2 实例上调用 StartInstances 多次,则每次调用时都会创建一个新的网络接口。但是:

  • Elastic Graphics 加速器只使用一个网络接口。

  • 额外的网络接口不会产生任何费用,将在 24 小时内自动释放。