背景:Microsoft Azureには、パフォーマンスと価格がそれぞれ異なる膨大な種類の仮想マシンがあります。このような仮想マシンは1時間ごとに支払われます。目標は、「費やしたお金を最大限に活用する」方法を決定することです。これは、一定量の計算に費やされる電力の観点からも言い換えることができます。
だから私はコードの一部を持っています ここのように これは非常にCPUを集中的に使用します-メモリをほとんど使用せず、ディスクも使用しません。私の目標はプロセッサ速度のみを比較することであり、使用するコードは、計画している本番負荷とほとんど同じCPU命令シーケンスを使用すると想定しているため、最初にこのコードを使用するのが理にかなっています。そのコードのパラメーター(計算する値の数)を選択すると、実行間で変更されないため、「500万」とすると、すべての実行でまったく同じように計算されます。
したがって、このコードをタイプT1のVMで複数回実行し(架空の、AzureにはそのようなVMタイプはありません)、平均5分間実行されることがわかります。 T1マシンの費用は1時間あたり10セントです。
次に、このコードをタイプT2のVMで複数回実行すると、平均7.5分間実行されることがわかります。 T2マシンの費用は1時間あたり8セントです。
次に、どちらが優れているかをどうにかして比較する必要があります。私の論理は次のとおりです。時間とコストの両方を最小限に抑えることに関心があります。したがって、コードを実行する時間に1時間あたりのコストを掛けると、「時間ごとのお金」(この特定の比較では分ごとのセント)の測定値が得られます。 「money-by-time」値が最小のVMが最も効率的です。この場合、T1マシンには「5分×10セント」(50)があり、T2マシンには「7.5分×8セント」(60)があります。 T1マシンは17%効率的です。
特定の価格でのパフォーマンスの観点からVMを比較するこのような方法は意味がありますか?私のロジックにおそらくエラーがありますか?
はい、しかしそれらはドルと呼ばれ、ドル時間ではありません。あなたはセントと分を掛けていません。あなたは1時間あたりのセントと分を掛けています。時間単位はキャンセルされ、セントが与えられます。 7.5分(0.125時間)×1時間あたり8セントは1セントです。
これは、コードをノンストップで実行することを計画していて、特定の金額でできるだけ多く、またはできるだけ安くで特定の回数実行したい場合に意味があります。
1201ProgramAlarmが指摘したように、VMがほとんど何もしない場合、これは意味をなさない可能性があります。あなたの例では、プログラムを1回だけ実行する場合、T1マシンの方が効率的ですが、1時間分の料金を支払う必要があるため、T2マシンを使用する方が安価です。プログラムを1時間に8回実行する必要がある場合でも、T2マシンの方が安価です。プログラムを1時間に9回実行する必要がある場合は、2 T2マシンまたは1台のT1マシンを使用する必要があり、T1の方が安価です。
Amazonは、「Amazon EC2ComputeUnits」でインスタンスの処理能力を測定します。
公開されている評価が正確かどうかを確認できるので、実行するのは興味深い実験です。
おそらく、計算で四捨五入が発生し、特定のインスタンスタイプを取得することでコストを節約できる可能性があります。
しかしながら。大まかに言えば、公表された措置は正しいと推測できると思います。それに対してチェックを実行しても、おそらく追加情報は得られません
このリンクをチェックしてください https://www.ec2instances.info/