Docker Community Forums

Share and learn in the Docker community.

Docker (moby-engine) performance deficit avoidable?

Hello everyone,

I was doing some benchmarking between my docker container an a bare-metal install of different software I use. I compared a CentOS 7 install to a CentOS7 docker and a Fedora 33 install to a Fedora 33 docker.

The setup is as followed for the docker:

  • CentOS 7 docker is started with sbin/init and accessed using docker exec

  • Fedora 32 docker is started with /bin/bash

Both are ran in a VM (meaning I have a Fedora 33 VM and a CentOS7 VM, but both centos and fedora docker are being ran on the Fedora 33 VM)

So the software I ran for the test are Ansys Fluent and StarCCM+ for centos and Openfoam for Fedora.

For the ansys fluent test:

Ansys Fluent Concorde Case (8 cores)
5960x (linux CentOS7 docker in Fedora 33 VM V19.3) = 142.939 seconds (for 140 iterations)
5960x (linux CentOS7 docker in Fedora 33 VM V19.13) = 393.108 seconds (287 Iterations, Check Mesh fixed 10% bad cells for 4 passthroughs twice)
5960x (linux CentOS7 VM Ansys R19.3) = 132.494 seconds (for 140 iterations)
5960x (linux CentOS7 VM Ansys R19.3) = 383.644 seconds (287 Iterations, Check Mesh fixed 10% bad cells for 4 passthroughs twice)

For StarCCM+ test:

StarCCM+
Blade Element Helicoptor Method (8 core):
5960x (linux CentOS7 docker in Fedora 33 VM V10.03.065) = 10684.45 seconds (or 8 times total cpu time) or 1335.56 seconds total
5960x (linux CentOS7 VM V10.03.065) = 9514.61 Seconds (or 8 times total cpu time) or 1189.326 seconds total

For Openfoam test:

OpenFOAM-7 Incompressible SimpleFOAM Motorbike (6 core):
5960x (linux Fedora 32 docker in Fodera 33 VM (OFv7) = 98.52 seconds (SnappyHexMesh) and 228.77 seconds (SimpleFoam)
5960x (linux Fodera 33 VM (OFv7) = 99.22 seconds (SnappyHexMesh) and 213.5 seconds (SimpleFoam) OpenFOAM-v1912 Incompressible SimpleFOAM Motorbike (6 core):
5960x (linux Fedora 32 docker in Fodera 33 VM (OFv1912) = 77.56 seconds (SnappyHexMesh) and 261.73 seconds (SimpleFoam)
5960x (linux Fodera 33 VM (OFv1912) = 73.78 seconds (SnappyHexMesh) and 229.55 seconds (SimpleFoam)
OpenFOAM-v2012 Incompressible SimpleFOAM Motorbike (6 core):
5960x (linux Fedora 32 docker in Fodera 33 VM (OFv2012) = 77.08 seconds (SnappyHexMesh) and 246.53 seconds (SimpleFoam)
5960x (linux Fodera 33 VM (OFv2012) = 75.2 seconds (SnappyHexMesh) and 236.8 seconds (SimpleFoam)

Based on those numbers I am looking at:

fluent (concorde, 140 iteration) docker perf hit = 7.31 %
fluent (concorde, 287 iterations) docker perf hit = 2.41 %
StarCCM+ (Blade Element Method Helicopter) docker perf hit = 10.95%
Openfoam 7 (motorbike) docker perf hit = 6.67%
Openfoam 1912 (motorbike) docker perf hit = 12.23%
Openfoam 2012 (motorbike) docker perf hit = 3.95%

So is that a normal overhead to expect? I believe the delta will increase/decrease depending on simulations. Is it possible to get an almost 0% (or less than 0.1%) delta?

Here is the script I use to launch CentOS docker: My script

Build a Linux or Windows image
Sign in to your Azure DevOps organization and navigate to your project.

Go to Pipelines, and then select New Pipeline.

Select GitHub as the location of your source code and select your repository.

Note

You might be redirected to GitHub to sign in. If so, enter your GitHub credentials. You might be redirected to GitHub to install the Azure Pipelines app. If so, select Approve and install.

Select Starter pipeline. Replace the contents of azure-pipelines.yml with this code. If you are building a Linux app, use ubuntu-1604 for your vmImage. You can use windows-latest for your vmImage for Windows.

YAML

Copy
trigger:
- main

    pool:
      vmImage: 'ubuntu-1604' # set to windows-latest or another Windows vmImage for Windows builds

    variables:
      imageName: 'pipelines-javascript-docker'

    steps:
    - task: Docker@2
      displayName: Build an image
      inputs:
        repository: $(imageName)
        command: build
        Dockerfile: app/Dockerfile

Hello mate,

I am going on a whim and thinking you may have posted it on the wrong thread?