如何最大限度地发挥 EC2 实例的性能

Mar*_* P. 11 ubuntu amazon-ec2 amazon-web-services

免责声明:我是服务器世界中的前端开发人员。

嗨,大家好。我在 EC2 上有一个服务器实例c5d.9xlarge,其规格是:

  • 系统:Ubuntu 18.04
  • vCPU:36 个线程/内核
  • 内存:72 GB
  • 存储:900 GB NVMe SSD
  • 专用 EBS 带宽:7,000 Mbps
  • 网络性能:10 Gbps

场景:我使用此服务器上传大型视频(4K,1+ 小时)并使用 FFMPEG 处理它们,但与我之前的具有 12 个内核和 48 GB RAM 的 UpCloud 服务器相比,此 EC2 服务器的上传和处理时间要长 1.5 倍,我认为不应该是这样。

问题:我如何最大限度地提高我所支付的性能?

MLu*_*MLu 19

c5d.9xlarge带有900GB 实例存储(又名临时存储)-您是否使用它来存储和处理文件?虽然您的实例有一些专用的 EBS 带宽,但实例上的 SSD 存储速度仍然会快得多。我建议您将其用于所有源文件和临时文件,并将结果仅存储到 EBS。

不过,实例存储有一些注意事项:

  1. 您必须先格式化并安装它,然后才能使用它。有关更多详细信息,请参阅此答案:Automatically mount SSD instance storage on AWS EC2 in Ubuntu 16.04

  2. 当您停止并重新启动实例时,内容将被擦除。它在重启后仍然存在,但不能停止/启动。


更新:默认情况下未安装 SSD - 您必须按照上面链接答案中的步骤使用它。在启动后的标准配置中,您将使用比 SSD 慢的 EBS。

然后您必须确保您确实在使用它- 将上传工作临时目录设置为该 SSD 安装点。

或者甚至更好 - 因为您有 72 GB 的 RAM - 创建一个 RAM 磁盘并将其用于临时文件。这将比 SSD 更快(如果文件合适)。

首先忽略上传速度并优化处理 - 将文件上传到 EBS 并计时,然后上传到 SSD 并计时,然后上传到 RAM 磁盘并计时。看看他们有多少不同。

上传速度会受到很多方面的影响,包括您与您上传到的 AWS 区域之间的距离和延迟。您是否使用离您很近的 AWS 区域?

关于CPU 性能- 您有 36 个 CPU 可用,但是每个单核可能比您之前的 12 核机器中的核慢。这取决于 CPU 架构和时钟速度。但是,如果您可以将视频处理并行化为 36 个线程,那么在这种情况下应该会更好。如果您依赖单个线程,则可能无法获得所需的性能。

希望有帮助:)