2

私たちはローカル開発環境でDockerを使用しており、運用のためにGoogle Cloud Container Engineに導入しています。 GoogleのプロダクションSQLサーバーもGoogle Cloudにあります。Dockerの非ローカル非ローカルデータベースへのアクセス

コンテナがContainer Engineインスタンス上で実行されている場合、DBアクセスは高速ですが、ローカルマシンで実行すると非常に遅くなります。生産時に通常1.9秒かかる一部のページの読み込みは、私たちの地元の人たちに25.0秒まで持ち込まれます。

近接性が問題であると思われたので、私はローカルマシン上でMySQL Dockerコンテナを起動し、その代わりにローカルのDockerized Webサーバーを接続して高速化しました。生産現場での1.9秒間のページロードは、現地で1.8秒前後であった。

オフィスの私たちのサーバーでMySQL Dockerインスタンスを実行することにしましたが、これらのページをロードすると、25.0秒後に再びスパイクされました。

Dockerがローカルマシンにないリソースに接続する必要があるときに、接続が遅くなっているようです。それがすべて場合に役立ちます

docker info出力は:

Containers: 4 
Running: 2 
Paused: 0 
Stopped: 2 
Images: 203 
Server Version: 1.12.2 
Storage Driver: aufs 
Root Dir: /mnt/sda1/var/lib/docker/aufs 
Backing Filesystem: extfs 
Dirs: 209 
Dirperm1 Supported: true 
Logging Driver: json-file 
Cgroup Driver: cgroupfs 
Plugins: 
Volume: local 
Network: null bridge host overlay 
Kernel Version: 4.4.24-boot2docker 
Operating System: Boot2Docker 1.12.2 (TCL 7.2); HEAD : 9d8e41b - Tue Oct 11 23:40:08 UTC 2016 
OSType: linux 
Architecture: x86_64 
CPUs: 4 
Total Memory: 3.858 GiB 
Name: dev 
ID: AYO6:TL7P:XSST:VI5T:HKCC:QTOZ:HP3X:NKYQ:YCWT:THV2:AQM2:5XER 
Docker Root Dir: /mnt/sda1/var/lib/docker 
Debug mode (client): false 
Debug mode (server): true 
File Descriptors: 32 
Goroutines: 58 
System Time: 2016-10-26T22:46:19.218543394Z 
EventsListeners: 1 
Registry: https://index.docker.io/v1/ 
Labels: 
provider=virtualbox 

EDIT:

を、問題を絞り込むしようとしますが、私は私のMacBook上でMySQLドッカーコンテナを設定して、私たちを設定しました別のマシン上のDockerized Webサーバー(Ubuntu 14.04を実行中)。

データベースアクセスは高速でしたが、これを逆にしたとき(UbuntuマシンのMySQL、MacbookのWebサーバー)、それは恐ろしく遅かったです。奇妙な。私はMacBookのDockerを1.12にアップデートしてみました。これはVirtualBoxを式から削除していますが、これで問題は解決されていません。

恐らくDockerのネットワークアダプタで何か起こっていると思いますか?私は困惑している。

+0

Webアプリケーションをホスト名ではなくIPアドレスでデータベースサーバーに接続してみることができます。これにより、ホスト名解決またはDNSが考えられる原因から除外されます。 –

+0

これも試してみてください。遅いDNS解決は私が以前のバージョンのDockerで読んだものでしたが、このケースでは問題ではないようです。 –

+0

私はまったく同じ問題を抱えています。リモートホスト上で接続するとローカルホスト上で高速接続が30秒以上+(Google Cloud SQLとamazon awsを試した)@Justin Doyle – Renato

答えて

0

私が望んでいた解決策ではありませんが、他の誰かがこの問題を抱えて壁から頭を叩いている場合に備えて、まさにその解決策です。

私たちの解決策は、私たちのローカルマシン上のDockerサービスとしてMySQLのローカルコピーを実行し、そのデータベースを複製することでした。理想的なソリューションではありませんが、1回のWebリクエストごとに10〜30秒の応答時間を要しませんでした。

また、Linux VM内でDockerコンテナを実行し、ホストオンリーアダプタを使用することも大きな違いがあることも発見しました(残念ながら、Docker for macOSはホストオンリーアダプタをサポートしていません)。

0

使用していたDocker for Macのバージョンはどれですか? 私は似たような問題を経験したので、Docker for MACに関連する可能性のある既知の問題が見つかりました。

この問題は、次のいずれかにマップされています。

彼らはまたworkaroundを提供しますが、今ではドッカーのバージョンを更新するために十分でなければなりません。

関連する問題