web-dev-qa-db-ja.com

パフォーマンス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倍の時間がかかります。

質問:支払い対象のパフォーマンスを最大化するにはどうすればよいですか?

11
Martavis P.

きみの c5d.9xlargeには900GBのインスタンスストレージ(別名ephemeral storage)が付属しています-これを使用してストレージとファイルを処理していますか?インスタンスに専用のEBS帯域幅がある場合でも、インスタンス上のSSDストレージははるかに高速です。これをすべてのソースファイルと一時ファイルに使用し、結果をEBSにのみ保存することをお勧めします。

ただし、インスタンスストレージにはいくつかの注意事項があります。

  1. 使用する前に、フォーマットしてマウントする必要があります。詳細については、この回答を参照してください:SSDインスタンスストレージをUbuntu 16.04のAWS EC2に自動的にマウント

  2. インスタンスを停止して再起動すると、内容はwipedになります。再起動後も存続しますが、停止/開始はしません。


更新:デフォルトではSSDはマウントされていません-それを利用するには、上記のリンクされた回答の手順に従う必要があります。起動後の標準構成では、SSDよりも遅いEBSを使用します。

次に、それが実際にを使用していることを確認する必要があります-uploadを設定しますそのSSDマウントポイントへの作業中および一時ディレクトリ

またはさらに良い-72 GBのRAM=-RAMディスクを作成し、それを一時ファイルに使用します。これは、 SSD(ファイルが適合する場合)。

まず、アップロード速度を無視して処理を最適化します。ファイルをEBSにアップロードして処理時間を計測し、次にSSDにアップロードして時間計測し、次にRAMディスクに処理時間を計測します。方法を参照してください。彼らは大きく異なります。

アップロード速度は、ユーザーとアップロード先のAWSリージョンの間の距離やレイテンシなど、さまざまな要素の影響を受けます。近くのAWSリージョンを使用していますか?

ReCPUパフォーマンス-36のCPUを使用できますが、各シングルコアは以前の12のコアよりも遅い -コアマシン。これは、CPUアーキテクチャとクロック速度に依存します。ただし、ビデオ処理を36スレッドに並列化できる場合は、このインスタンスを使用することをお勧めします。シングルスレッドに依存している場合、必要なパフォーマンスが得られない可能性があります。

それが役に立てば幸い:)

19
MLu

代替案を検討する余地はありますか? c5d.9xlargeのコストについては、大幅な割引を受けている場合でも、専用サーバー市場で数台同等またはそれ以上のマシンを使用できます

この種の垂直スケーリングされた問題にクラウドを使用することは、過剰な支払いのレシピであり、ご覧のようにパフォーマンスが低下します

回答が得られなくて申し訳ありませんが、コメントするのに十分な担当者がいません

1
Luke F