Kubernetes: ベアメタルと仮想マシンのパフォーマンス比較

Kubernetes: ベアメタルと仮想マシンのパフォーマンス比較

この記事では、CPU、メモリ、ストレージ、ネットワーク パフォーマンスの観点から、仮想マシンとベアメタル上の Kubernetes クラスターのパフォーマンスを詳細に比較および分析します。

Kubernetes は、ベアメタル上で VM よりも本当にパフォーマンスが優れているのでしょうか?彼は、Kubernetes を含むクラウド ネイティブ テクノロジーに関連するさまざまな企業で 5 年以上の執筆経験を持っています。執筆活動を始める前、オレグは…として働いていました。

多くの人は、物理マシンにデプロイされた Kubernetes クラスターの方が仮想マシンにデプロイされたクラスターよりもパフォーマンスが優れていると考えていますが、これまでのところ、この仮定を裏付ける証拠はありませんでした。 Gcore では、証拠によって十分に裏付けられた情報のみをお客様に提供しているため、物理マシンと仮想マシンに展開された K8S の間に実際にパフォーマンスの違いがあるかどうか、ある場合はその違いはどの程度大きいかを自らテストすることにしました。社内テストの結果を共有します。

コスト効率やインフラストラクチャ制御のレベルなど、物理ノードと仮想ノード間の競争の他の側面については意図的に説明しません。これは、パフォーマンスの比較のみに焦点を当てたこの記事の範囲を超えています。

Kubernetes クラスターを仮想マシンにデプロイすると、物理マシンと比較して、ハイパーバイザーと仮想マシン オペレーティング システムという追加のインフラストラクチャ レイヤーが得られます。

図 1: 物理マシン アーキテクチャと仮想マシン アーキテクチャの違い。

これらのレイヤーは実行時に物理 CPU と RAM を消費するため、ある程度の計算能力を消費します。仮想化はネットワークとストレージのパフォーマンスにも影響します。仮想ネットワークとストレージは、物理ネットワークとストレージよりも遅くなります。

対照的に、物理サーバーに Kubernetes クラスターを展開する場合、追加のインフラストラクチャ レイヤーや仮想化は必要ありません。サーバーの物理リソースは完全にワークロード専用となり、コンテナ化されたアプリケーションはそれらのリソースに直接アクセスします。

仮想マシンと物理マシンでのKubernetesのパフォーマンスを比較する方法

仮想マシンと物理マシンのパフォーマンス比較を完全に理解するために、次のメトリックを測定しました。

  • CPU: 速度と使用率
  • RAM: レイテンシ
  • ストレージ: 1 秒あたりのトランザクション数 (TPS) とレイテンシ
  • ネットワーク: 帯域幅と遅延

実験の純粋性を保つために、すべてのテスト アプリケーションはコンテナ化され、比較対象のワーカー ノードにデプロイされました。

私たちのテスト条件

テストには、Gcore が管理する Kubernetes (https://gcore.com/cloud/managed-kubernetes) で実行される K8s クラスターを使用しました。ただし、マネージド Kubernetes はワーカー ノードのパフォーマンスに追加のオーバーヘッドを追加しないため、結果はネイティブ Kubernetes にも適用されます。

ワークロードを同じ条件に保つために、同様に構成された仮想ワーカー ノードと物理ワーカー ノードを選択しました。次に、このような比較構成の例を示します。

  • 物理ワーカーノード: 1x Intel Xeon E-2388 8C/16T 3.2 GHz / 64 GB / Ubuntu 22.04
  • VM ワーカーノード: 16 vCPU / 64 GiB メモリ / Ubuntu 22.04

テスト結果の概要

私たちのテストでは、仮想マシン (VM) にデプロイされた Kubernetes クラスターと物理マシンにデプロイされた Kubernetes クラスターの 2 つを比較しました。構成は似ています。テストワークロードとして以下を実行しました:

  • CPUテスト用のCPUベンチマーク
  • RAMテスト用のSysbench
  • ストレージテスト用の Pgbench
  • ネットワークテスト用のNetperf

次の表は最も重要なテスト結果をまとめたものです。

図 2: テスト結果の概要。

明らかに、すべてのケースにおいて、物理マシンのクラスターの方が効率的です。

この記事の後半で結果を詳しく検証し、物理マシンのパフォーマンス向上がワークロードにとってどのような意味を持つかを判断します。ただし、まず、Kubernetes クラスターを仮想マシンにデプロイする場合と物理マシンにデプロイする場合の基本的な違いを簡単に確認してみましょう。

詳細なテスト結果

それでは、各評価基準に関して、物理マシン クラスターと仮想マシン クラスターのパフォーマンスを詳しく見てみましょう。

CPU速度と使用率

CPU 速度の比較には、Alex Dedyura の CPU ベンチマークを使用しました。 π を小数点以下 10,000 桁まで計算するスクリプトです。計算時間は秒単位で、10 回のテストの平均値がテスト結果として取得されます。 π の計算は CPU を集中的に使用するタスクであるため、ベンチマークによってテスト対象の CPU のパフォーマンスが明確に示されます。

CPU 速度の比較結果は次のとおりです。

図 3: 物理マシン クラスターの CPU 速度は、仮想マシン クラスターの CPU 速度の 2 倍以上です。

仮想マシン クラスターの 10 回の再試行の平均時間は 47.07 秒でした。物理マシン クラスターの場合は 21.46 秒でした。その結果、物理マシン クラスターの速度は 2 倍以上になります。

仮想マシン クラスターの CPU 使用率テストの結果は次のとおりです。

写真

図 4: 仮想マシン クラスターの平均 CPU 使用率は 86.81% です。

図 5: 仮想マシン クラスターの CPU コア使用率情報。

上の図 4 では、赤い点は CPU コアの最大負荷を表し、緑はすべてのコアの合計 CPU 負荷を表します。スクリプトの実行中、コアはほとんどの時間 100% の使用率で実行されました。平均は86.81%でした。また、15:16 頃にはプリエンプション時間のスパイクがわずかに見られますが、これは、物理 CPU がコンピューティング リソースを共有するのを待機しているために VM が実行されていない場合によく見られる状況です。

*最大 CPU コア負荷: このメトリックは通常、VM 内または VM ホスト間で観測される単一の CPU コアの最高使用率を示します。特定の CPU コアがどの程度使用されているかを示します。 **すべてのコアの合計 CPU 負荷: このメトリックは、ホスト上のすべての使用可能な CPU コアの全体的な CPU 使用率を表します。すべての CPU コアの合計使用量を考慮し、ホスト上で実行されているすべての VM によって使用される CPU 容量の全体的なビューを提供します。

物理マシン クラスターの CPU 使用率テストの結果は次のとおりです。

図 6: 物理マシン クラスターの平均 CPU 使用率は 43.75% です。

平均CPU負荷は約43.75%、最大は62.57%で、プリエンプション時間はありません。したがって、CPU パフォーマンスの点では、物理マシン クラスターは仮想マシン クラスターの約 2 倍の効率であることがテストで示されました。

RAM レイテンシ

RAM テストでは、sysbench を使用して、6400 GB のデータを RAM 経由で転送しました。実行された書き込みおよび読み取り操作の主な結果は次のとおりです。

写真

7: 物理マシン クラスターの RAM 速度は、仮想マシン クラスターの約 3 倍高速です。

仮想マシン クラスターの平均書き込み時間は 174.53 ミリ秒ですが、物理マシン クラスターが同じ操作を実行する時間は 62.02 ミリ秒です。読み取り操作はそれぞれ 173.75 ミリ秒と 47.33 ミリ秒で完了しました。

つまり、物理マシンのクラスターの RAM は、仮想マシンのクラスターの RAM よりも約 3 倍高速です。

ストレージ TPS とレイテンシ

ストレージのパフォーマンスをテストするために、PostgreSQL クラスターを実行し、pgbench ベンチマークを使用しました。 TPS (1秒あたりのトランザクション数) とレイテンシを測定しました。また、ワークロードを変化させ、同じクラスター構成で 8 GB および 75 GB のデータベースをテストしました。

インスタンスの構成は次のとおりです。

図 8: ストレージ テスト用の物理マシンと仮想マシンのクラスター構成。

TPS結果の保存

TPS 比較の平均結果は次のとおりです。

写真

図 9: 物理マシン クラスターのストレージ TPS 値は、仮想マシン クラスターの約 2 倍です。

8GB のデータベースを実行すると、仮想マシン クラスターでは 7,359 TPS が示され、物理マシン クラスターでは 14,087 TPS が示されました。 75GB データベースのパフォーマンス結果は、それぞれ 4,636 TPS と 12,029 TPS です。

遅延結果の保存

レイテンシ テストの平均結果は次のとおりです。

図 10: ストレージのレイテンシに関しては、物理マシンが仮想マシンよりも優れています。

8GB のデータベースを実行した場合、仮想マシン クラスターのレイテンシは 34.78 ミリ秒でしたが、物理マシン クラスターのレイテンシは 18.17 ミリ秒でした。 75GB のデータベースの場合、レイテンシはそれぞれ 55.21 ミリ秒と 21.28 ミリ秒でした。

8GB のデータベースを実行する場合、物理マシン クラスターのストレージ パフォーマンスは仮想マシン クラスターの約 2 倍になります。 75 GB のデータベースの場合、仮想マシン クラスターよりも物理マシン クラスターの利点がより明白になります。

ネットワーク帯域幅と遅延

ネットワーク パフォーマンスをテストするために、最大セグメント サイズ (MSS) が 1 ~ 65,536 の netperf ベンチマークを使用しました。 MSS の「セグメント」要素は、ネットワーク経由で送信される IP パケットのバンドルです。したがって、MSS が大きいほど、送信されるトラフィックが大きくなります。

2 つの物理ノードに 3 つのワーカー ノードを展開しました。ワーカー 1 とワーカー 2 は最初のノードにあり、ワーカー 3 は 2 番目のノードにあります。次に、3 つのワーカー ノード間のネットワーク パフォーマンスをテストしました。結果の傾向はすべてのケースで同様であり、物理マシンは仮想マシンよりも優れています。

最も興味深いテストは、ワーカー ノード間の物理的な距離が最も大きいテストです。つまり、トラフィックが最初の物理ノードと 2 番目の物理ノード間で流れているときの、ワーカー 1/ワーカー 2 (最初のノード上) とワーカー 3 (2 番目のノード上) 間の距離です。これはすべてのテストの中で最も困難な条件であると考えられます。図10と11にこのテストの結果を示します。図10は、MSS値が1、2、4、8の場合のネットワーク帯域幅の比較を示しています。

図 11: 物理マシン クラスターのネットワーク帯域幅は、仮想マシン クラスターの 5 倍です。

仮想マシン クラスターの帯域幅は、MSS=1 で 862KB/秒から MSS=8 で 6.52MB/秒の範囲ですが、物理マシン クラスターの帯域幅は MSS 値で 4.17MB/秒から 31MB/秒の範囲です。平均して、物理マシン クラスターの帯域幅は仮想マシン クラスターの 5 倍です。

図 12 は、同じ MSS 値を使用したネットワーク遅延の比較を示しています。

図 12: 物理クラスターのネットワーク遅延は、仮想クラスターの最大 6 倍低くなります。

ご覧のとおり、MSS = 8 で測定すると、VM クラスターのレイテンシは約 145 マイクロ秒ですが、物理マシンのレイテンシは 24.5 マイクロ秒で、約 6 倍高くなります。さらに、物理マシン クラスターの場合、MSS が増加すると、レイテンシの増加は緩やかになります。

すべてのテストでは、クラスター ネットワーク内のネットワーク パフォーマンスの比較を報告することに注意してください。 1 つの場所にあるネットワーク内のノード間の帯域幅と遅延を測定しました。異なる場所にあるノードを使用すると、インターネットの待ち時間が増加し、不安定になり、プロバイダーごとに異なる可能性があります。私たちは合成条件下でそれらを純粋に保ちます。実際の環境では再現できない可能性があります。ただし、一般的な傾向は再び現れることが予想されます。

物理的なマシンパフォーマンスの利点の重要性

仮想マシンと比較して物理マシンのパフォーマンスが優れていることにより、2 つのシンプルだが重要な利点が得られます。

  • 物理マシンのワーカー ノードにデプロイされたアプリケーションは、仮想マシンにデプロイされたアプリケーションよりも高速に実行され、応答します。
  • したがって、物理マシンを選択すると、顧客は製品をより快適に使用できるようになります。

私たちのテスト結果は、データベース、AI/ML モデル、その他の種類のリアルタイム アプリケーションなど、高パフォーマンスと低レイテンシが求められる計算集約型のワークロードには物理マシンの方が適しているという常識を裏付けています。仮想マシンは、Web サーバー、Web サイト、開発環境など、コンピューティングとレイテンシの影響を受けにくいワークロードに適しています。高いパフォーマンスと低レイテンシーがユーザーにとって重要であり、ビジネスに直接影響を与える場合は、Kubernetes クラスターで物理マシンを使用することを検討する必要があります。

結論は

私たちのテストでは、物理ワーカーノードが仮想ワーカーノードよりも優れているという仮説が確認されました。また、物理ワーカー ノードが実際にどれほど優れているかについての具体的なデータも生成しました。

  • CPU速度と使用率が2倍に向上
  • RAMレイテンシが3分の1に減少
  • ストレージパフォーマンスが2倍以上
  • ネットワーク遅延が5倍以上短縮

物理ワーカーノードで Kubernetes を試してみたい場合は、Gcore のマネージド Kubernetes をご確認ください。当社では、AI/ML ワークロードを高速化するための NVIDIA GPU を含む、数種類のワーカー ノード構成を提供しています。

この記事のテストと執筆に協力してくれた Gcore の同僚の Sergey Kalinin、Sergey Mikhalev、Andrei Novoselov に感謝します。

<<:  ガートナーは、パブリッククラウドに対する世界のエンドユーザーの支出が2024年に6,790億ドルに達すると予測している。

>>:  Google ドキュメントのシステム設計の詳細説明(共同ドキュメント編集)

推薦する

9つのマルチクラウド管理プラットフォームの評価

ハイブリッド クラウドやマルチクラウド環境の管理に役立つクラウド コンピューティング ツールとサービ...

2019年ソーシャルマーケティングプロモーションレポート!

ソーシャルメディアを利用しない10代の若者の割合は、2017年の17%から2018年には19%に増加...

YihaodianオンサイトSEO最適化分析(I):オンサイトURL最適化

中国初のオンラインスーパーマーケットである Yihaodian は、2008 年 7 月に正式に開始...

2013 年のドメイン名投資家への戦略的アドバイス

ドメイン名投資による収益は、多くのドメイン名愛好家の注目を集めています。したがって、より良い収益を得...

老ウェブマスターがウェブサイトコンテンツの「重複掲載」を避ける方法を教えてくれる

私たちのウェブサイトが検索エンジンによってインデックスされているとき、この現象がよく見られます。同じ...

イントラネットを使用して何百万ものトラフィックを持つウェブサイトを構築する方法

ウェブマスターにとって、トラフィックはすべてです。 SEO 競争が激化し続ける中、どうすれば新たな打...

SEO運用においてソフト記事を運用するには?

現在、国内のSEO最適化のほとんどはBaidu向けに行われています。360の現在の市場シェアは20%...

ブランドマーケティング手法、この4つのステップを活用しましょう!

人生において、私たちは他人の成功を見て、「成功を再現できるだろうか?」と自問することがよくあります。...

SEOが理解すべき考え方

最近、忙しいウェブマスターや SEO 担当者の中には、Baidu の最新の青大根アルゴリズムを学び始...

Microsoft が Windows Live ブランドを廃止へ: ドメイン名の悲劇?

eName.cnは5月3日、海外メディアの報道によると、Windows 8システムの新バージョンはさ...

ビッグデータを活用したいですか?パブリッククラウドまたはオンプレミス

2020 年には、競合他社の進化が加速する中、ビッグデータ分析にパブリック クラウドを十分に活用して...

すごいらしい:百度が「クラウドマップ」の現場画像推奨プラグインをリリース

Baidu が「クラウドマップ」という画像関連プラグインを開発したというニュースをちょうど受け取りま...

ロングテールキーワードは間接的に最適化することもできる

ロングテールキーワードについては誰もがよく知っているはずなので、その概念については詳しく説明しません...

80年代以降の若者がウェブサイトを作成し、それが間違った方向に進み、「有料削除」を利用して人々を脅迫した。

まず、無作為の情報をネット上に拡散し、暴露された情報源から「有料削除」料を要求した。 1980年代生...

#BlackFriday# RCP: 日本 AS9929、年間 19.99 ドル、1G メモリ/1 コア/20g SSD/100G トラフィック/100M 帯域幅

rcp.net はブラックフライデーに日本 VPS のミニチュア版をリリースしました。デフォルトのネ...