Rate This Document
Findability
Accuracy
Completeness
Readability

Introduction

Docker Container Architecture

Docker uses the client-server architecture, as shown in Figure 1. The Docker client communicates with the Docker daemon, which is responsible for building, running, and distributing Docker containers. The Docker client and Docker daemon can run in the same system. You can also connect the Docker client to a remote Docker daemon. The Docker client and Docker daemon communicate with each other by using REST APIs, UNIX sockets, or network interfaces.

Figure 1 Docker container architecture

Tuning Process Flow

This document describes how to adjust the hardware parameters, OS, and Docker container settings on a Kunpeng server to achieve optimal Docker container performance.

Install Docker first. For details, see Docker Installation Guide.

Figure 2 shows the process of performance tuning on the Docker virtualization platform.

Figure 2 Docker container performance tuning

Top N Tuning Items

The following table lists the most frequently used tuning items that affect or improve the Docker container performance. You can select proper tuning items based on your requirements to achieve optimal performance.

Tuning Item

Description

Application Scenario

Remarks

BIOS

Set the memory refresh rate to Auto.

For commercial use

Change the memory refresh rate to Auto to improve memory bandwidth performance.

NUMA affinity

Ensure that the CPUs and memory bound to a Docker container are in the same physical node to prevent cross-die and cross-chip memory access.

For commercial use

Significantly improves Docker container computing performance.

CPU binding

Bind each Docker vCPU to a CPU.

For commercial use

-

Bind Docker vCPUs to CPUs in a CPU cluster.

For POC tests only

Significantly improves Docker container computing performance.

NIC interrupt affinity

Bind each interrupt to the CPU of the NUMA node where the physical NIC is located.

For commercial use

-