Performance on Docker?

Hi All,

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.

Hi Chris, Good to know about your plans to move to Docker. I wanted to understand more about how your comparing the performance on Docker verses on bare-metal. Does your Docker container has the same resources CPU, RAM, Disk etc compared to bare-metal? Are you running the same workload on both systems and measuring the initial index building?

You can also reach out to me and I can share any performance findings from our side.

Anil Kumar

Hi Anil,

In each case, I am re-using the same Vagrantfile script. I destroy and recreate the VM for each test. The host machine runs no other user-level applications while testing.