Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Performance Evaluation of Docker

nasunom
July 04, 2014

Performance Evaluation of Docker

Docker Meetup Tokyo #3

nasunom

July 04, 2014
Tweet

Other Decks in Technology

Transcript

  1. Copyright 2014 ASCADE, Inc. 自己紹介 名前: 那須野 淳 [email protected] 職場:

    株式会社アスケイド 経緯: 国立情報学研究所(NII) 横山教授らが進める 「アカデミックインタークラウド」実現に 向けたプロジェクトに係わり、技術検証・ プロトタイプ開発を行っています。 Dockerはクラウド基盤連携のための主要な 要素技術の一つ。 基礎性能数値を把握し、アプリケーションの 性能予測に役立てることが目的。 2
  2. Copyright 2014 ASCADE, Inc. 性能測定の観点  Docker のオーバーヘッド測定 • 物理サーバ(ベアメタルマシン)を

    そのまま使う場合と比べて、遅くなるのか? • VM上に配備した場合はどうか? • その他 − コンテナ / daemon オプション (-c, -m, -v, --privileged, -s, ...) − 並列コンテナのスケーラビリティ − 入れ子構造 "Docker-in-Docker" − 仮想ネットワーク機能 (Linux bridge + vEth + NAT)  VM方式との性能比較 • 仮想化方式として、VM(Hypervisor) と Docker どちらを選択したらよいか? 3
  3. Copyright 2014 ASCADE, Inc. 測定環境・ベンチマークツール ハードウェア・スペック ソフトウェア 4 OS Ubuntu

    13.10 (64bit) Kernel 3.11.0-19-generic Docker 0.10.0 OpenStack 2013.2 (Havana) UnixBench 5.1.3 Bonnie++ 1.97.1 Intel Xeon E5-2670 2.60GHz 32cpu (2socket x 8core x 2thread) RAM 96 GB
  4. Copyright 2014 ASCADE, Inc. UnixBenchスコア (on Baremetal) 5 16並列の場合、 ・Execl

    Throughput ・Shell Scripts の劣化が目立つ。 AUFS 管理下の /lib/* 共有ライブラリへの Read Overhead が 大きく影響する。
  5. Copyright 2014 ASCADE, Inc. Storage Driver を Device Mapperへ 6

    ・Execl Throughput ・Shell Scripts の性能は大幅に改善
  6. Copyright 2014 ASCADE, Inc. Storage Driver の指定方法 Docker daemon 起動オプション:

    -s devicemapper または /etc/default/docker.io に書く(※ubuntuの場合) DOCKER_OPTS="-s devicemapper" docker info コマンドで確認 7 変更すると、既存の イメージは管理位置が 変わり、docker images コマンドで見えなく なります。 ~# docker info Containers: 1 Images: 39 Storage Driver: devicemapper Pool Name: docker-8:5-61931522-pool Data file: /mnt/docker/devicemapper/devicemapper/data Metadata file: /mnt/docker/devicemapper/devicemapper/metadata Data Space Used: 3274.9 Mb Data Space Total: 102400.0 Mb Metadata Space Used: 4.3 Mb Metadata Space Total: 2048.0 Mb Execution Driver: native-0.1
  7. Copyright 2014 ASCADE, Inc. UnixBenchスコア (on VM) 9 on Baremetal

    の場合と ほぼ同様の傾向を示す。 (-s devicemapper) (OpenStack / KVM のVMインスタンスで計測)
  8. Copyright 2014 ASCADE, Inc. ファイル I/O 性能 (AUFS) 10 Bonnie++による

    5回計測の平均値で比較  Block I/O size=4GB  files=128*1024  dirs=128 AUFS 領域の read 性能劣化 が著しい。 -v オプションで ホスト側を共有
  9. Copyright 2014 ASCADE, Inc. ファイル I/O 性能 (Device Mapper) 11

    Device Mapper により read 性能を維持できる
  10. Copyright 2014 ASCADE, Inc. 仮想化方式(VM / Docker) の比較 12 (-s

    devicemapper) 一般的な VM / Baremetal 比較結果と同じような傾向 となった。ただし… Context Switching を除いて。 Context Switching: ⇒今回の環境では Baremetal側 のスケジューラの問題により、 Rescheduling Interrupts がVMと 比べ大量に発生したことが原因。 CPU割当(cpu affinity) を固定 するとBaremetalの方が 予想通り速い結果に。
  11. Copyright 2014 ASCADE, Inc. まとめ • Docker のオーバーヘッドは、Linux環境で動作する 一般的なアプリケーションの処理ならば、Baremetal マシンやVMをそのまま使う場合と変わらないレベル。

    • AUFS 領域への読み込み性能は極端に低下する場合 があり、用途によっては AUFS以外の Storage Driver (devicemapper など) を選択するほうがよい。 • (補) Dockerの標準ネットワーク設定では、NATルータを経由しても レイテンシー、スループットともに大きな差異は見られなかった。 ⇒ Host Networking機能のパフォーマンス的なメリットは少ないか? 13