如何最大程度提高 EC2 实例的性能

如何最大程度提高 EC2 实例的性能

免责声明:我是服务器领域的前端开发人员。

大家好。我在 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 倍,但我认为情况不应该如此。

问题:我如何才能最大限度地发挥我所支付的费用所带来的性能?

答案1

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

但是实例存储也有一些注意事项:

  1. 你必须格式化并安装必须先将其删除,然后才能使用。有关更多详细信息,请参阅此答案:在 Ubuntu 16.04 中自动在 AWS EC2 上挂载 SSD 实例存储

  2. 内容是已擦除当您停止并重新启动实例时。实例重启后仍可继续,但停止/启动后则无法继续。


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

然后你必须确保你确实使用它- 设置上传在职的临时目录到该 SSD 安装点。

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

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

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

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

希望有帮助:)

答案2

有没有空间可以考虑替代方案?对于一台服务器的价格c5d.9xlarge,即使你得到大幅折扣,在专用服务器市场,你也可以一些同等或更好的机器

使用云来解决这种垂直扩展问题会导致支付过高的费用,而且正如您所见,性能不佳

抱歉,我没有回答,但我没有足够的声誉来发表评论

相关内容