2016-07-24 13 views
3

Dockerコンテナとホストのネットワーク間のネットワークパフォーマンスが低下しています。私はDockerのフォーラムでこの質問をしましたが、これまでの回答はありませんでした。ホストのネットワークとのDockerコンテナのネットワークパフォーマンスが非常に遅い

問題

セットアップ:同じローカルネットワーク上に2つのMacがあります。最初はMQTTブローカー(mosquitto)を実行します。 2番目はDocker for Macを実行します。 2つ目のMacで2つのC++プログラムが実行され、Paho MQTT Cライブラリーを使用してMQTTブローカー(最初のMacの場合)を介してデータを複数回交換します。

ネイティブ実行:ネイティブに2つのC++プログラムを実行したとき、ネットワークのパフォーマンスは期待どおりに優れていました。プログラムはXCode 7.3で構築されました。

Dockerが実行されます:DockerでC++プログラムのいずれか、またはその両方を実行したとき、ネットワークパフォーマンスが大幅に低下し、ネイティブ実行より約30倍遅くなりました。 Dockerイメージはubuntuに基づいています:最新のもので、gcc(Ubuntu 5.4.0-6ubuntu1〜16.04.1)5.4.0 20160609.

私はホストネットワーク(--network = Dockerで "host"を実行しても問題ありませんでした)。また、2番目のMacでMQTTブローカーを実行しようとしました(ブローカーとコンテナーが同じホスト上で実行されるように)。問題は持続した。この問題は私の仕事用LANと私のホームネットワークに存在していました。

理論的には、C++プログラムは一般的にDockerコンテナでは遅かった可能性があります。しかし私の経験では、DockerのC++コードの一般的なパフォーマンスは、ネイティブ環境と同じくらい速いため、これが当てはまるとは思えません。

質問

この問題の原因は何ですか? Dockerにこの問題を解決するための設定がありますか?

答えて

0

コンテナのメモリとCPUのデフォルト割り当てが、達成しようとしているネットワークパフォーマンスの種類に最適ではないと思われます。

  1. などstraceのトップ、htopの、のような標準的なツールを使用して、容器内のリソースの使用状況を調査またはこれらのインスタンスは、ピーク動作しているとき、あなたはその後 $ docker stats node1 node2 CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O node1 0.07% 796 KB/64 MB 1.21% 788 B/648 B node2 0.07% 2.746 MB/64 MB 4.29% 1.266 KB/648 B
  2. あなたがしたい場合がありますドッキングウィンドウstatコマンドを使用することができますドッカーの実行で利用可能なさまざまなリソース割り当てパラメータを変更します。 enter image description here

  3. EDIT:チェックするもう一つは、実際のシステムインターフェースのMTUとドッカーインタフェースの設定であろう。それがあったよりも良いが、まだどのネットワークにコストを追加しようとしている間に、
+0

あなたの答えをありがとう。私はあなたが提案したことを試しました。 CPU使用率は非常に低く(0.3%)、メモリ使用量は4.4Mbの2Gb制限、ネットI/Oは約500Kb/400Kbの合計で35秒を超えています。したがって、現行のコンピュータとネットワークでは、ネットI/O速度はわずか14Kbと1秒あたり11Kbでした。ネイティブランは1秒未満で完了しました。なにか提案を? – Truong

+0

@Truong EDITに追加したMTU設定を確認できますか? –

+0

Docker for MacにMTUオプションが存在しません:https://docs.docker.com/docker-for-mac/networking/ MTUはデフォルトでホストの値と一致するように設定されています(私の場合は1500)。 – Truong

0

あなたのシステムのインタフェースのMTU値と一致するようにMac上の仮想化層のオーバーヘッドをお使いのドッキングウィンドウ値のMTUを設定する --mtu=BYTESを使用します。 VirtualBoxを使用した場合、20〜30倍のペナルティは珍しいことではありませんでした。彼らは、NFSがベータ11から始まってサポートされていると言っていましたが、それを使用しているかどうかを完全には確認できませんでした。https://docs.docker.com/docker-for-mac/release-notes/#/beta-11-release-2016-05-10-1-11-1-beta11

関連する問題