We’re attempting to move our application suite to Docker, and I’m seeing some interesting performance issues with Couchbase-Server. I’m hoping someone can validate my early results.
I’m using initial indexing performance after a database restore as an indicator of overall write performance. These numbers are gathered on a Late-2011 Macbook Pro with 16GB RAM and a commodity SSD, Vagrant 1.7.4, Docker 1.9.1 both inside the Vagrant VM (Ubuntu Trusty) as well as via homebrew, and Couchbase Server 4.0.0 Community. The Docker container uses a VOLUME directive to redirect /opt/couchbase/var to the VM’s filesystem.
I used a dataset of some 200k+ documents and a total of 37 design documents (90 individual views).
When running Couchbase Server as a ‘bare metal’ service within Ubuntu, indexing of this dataset takes approximately 30 minutes. When run in a Docker container, the time to index increases to 45-50 minutes using the recommended ulimit changes; it further increases to over an hour and a half without.
I’m wondering if a roughly 50% performance hit is normal for Couchbase Server running under Docker? It seems pretty extreme.