[解決済み] Dockerコンテナのランタイムパフォーマンスコストとは何ですか?
質問
Dockerコンテナのランタイムパフォーマンスコストを包括的に理解したい。以下のような参考文献を見つけました。 ネットワーキングの速度が100μs程度遅いとのこと。 .
また、ランタイム・コストが "negligible" や "close to zero" であるという言及も見つけましたが、これらのコストが何であるかをより正確に知りたいのです。理想的には、Dockerがパフォーマンスコストをかけて抽象化しているものと、パフォーマンスコストをかけずに抽象化されているものを知りたいです。ネットワーク、CPU、メモリなど。
さらに、抽象化コストがある場合、抽象化コストを回避する方法はあるのでしょうか。例えば、ディスクを直接マウントするのと、Dockerで仮想的にマウントするのとでは、どちらがいいでしょうか。
どのように解決するのですか?
2014年のIBMの優れた研究論文 " 仮想マシンとLinuxコンテナの最新パフォーマンス比較 " Felterらによる、ベアメタル、KVM、Dockerコンテナの比較を行っています。一般的な結果としては Dockerはネイティブの性能とほぼ同じであり、すべてのカテゴリでKVMより高速です。
例外はDockerのNATです。ポートマッピングを使用する場合(例.
docker run -p 8080:8080
) の場合、以下のようにレイテンシーに若干の影響が出ることが予想されます。しかし、ホストのネットワークスタック(例.
docker run --net=host
Dockerコンテナを起動する場合、Nativeカラムと同じように動作します(下部のRedisレイテンシの結果に示されているように)。
また、Redisなど、いくつかの特定のサービスについてもレイテンシテストを実施しました。20スレッド以上のクライアントでは、最も高いレイテンシオーバーヘッドはDocker NAT、次にKVM、そしてDocker hostとnativeが同率で並んでいることがわかります。
本当に役に立つ論文なので、他の図も紹介します。ぜひダウンロードしてご覧ください。
ディスクI/Oを見てみる。
今度はCPUのオーバーヘッドを見てみましょう。
さて、次は記憶の例です(詳しくは論文を読んでください、記憶は特に厄介です)。
関連
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] Dockerfileの'COPY'と'ADD'コマンドの違いは何ですか?
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] DockerfileのCMDとENTRYPOINTの違いは何ですか?
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] Dockerイメージはホストマシン上のどこに保存されていますか?
-
[解決済み] Dockerイメージをコンテナとして実行する
-
[解決済み】Dockerイメージとコンテナの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
rsyncとinotfiyの組み合わせでリアルタイムバックアップ問題を実現
-
deepin20ターミナルでサーバーをリモート管理する方法
-
Linux Mintで入力メソッドを削除する方法は?Linux Mintで冗長な入力メソッドを削除するためのヒント
-
TclError: 表示名がなく、$DISPLAY環境変数もない。
-
sudo が sudo として表示される: setuid root である必要がある
-
Apache の一般的な設定エラー
-
[解決済み] 出力をファイルや標準出力にリダイレクトする方法
-
[解決済み] Linux で grep を使ってファイル名だけを表示するにはどうしたらいいですか?
-
[解決済み] どのバージョンのPostgreSQLを使用していますか?
-
[解決済み] 特定のファイル/フォルダを除外してディレクトリをtarするシェルコマンド