障害内容
コンテナから見たストレージの性能が異常に低い。
現象
ベアメタルで動かしていたアプリケーションを Docker コンテナ化して運用しようとしているが、性能が出ない。どうやらストレージの性能が出せていないようだ。
調査
- 調査手法: コンテナホストでの sar 調査
コンテナホストで動作していた sar (sysstat) を調査したところ、高負荷時にストレージの性能が限界に達していた。コンテナのファイルシステムにアプリケーションのデータを保存しようとしていたのが原因。
- 解決策
ボリュームを利用するようにすることで性能もベアメタルと同等に改善した
その他
かつて、コンテナのファイルシステムは、差分ファイルシステムの実現のために aufs (Another Union Filesystem) を利用しており、性能や安定性に問題がありました。
現在では、device mapper を使ったものなどが主流ですが、コンテナ内のファイルシステムは永続的ではないため、アプリケーションデータはボリュームに保存することが推奨されています。