Replies: 3 comments 7 replies
-
is there any clue or some config i need change? or anybody who have done comparison test between containerd and docker can you share your method ? |
Beta Was this translation helpful? Give feedback.
-
are you also running docker containers in that host while running containerd independently? FYI kubelet still has dockershim built into it even if it is configured to load CRI services via external container runtime. How are you "preloading" images into containerd? Docker and containerd do not share container image caches. v1.2 of containerd shipped years ago that original comparison was against the latest docker at the time. The latest version of containerd is v1.4. |
Beta Was this translation helpful? Give feedback.
-
there's an external dockershim we are using for ci for cri-tools ... running container runtimes at least through crictl is more likely to give some decent results.. but you need to make sure to configure the crictl container runtime sock for each test as crictl has a "sequence" now for automatically trying various default container runtime socks. There is a big difference between 50 pods each with one busy box container and 50 pods with 5-10 containers making up an actual application. I suppose without specifying what you are testing, and how you are testing it.. it's sort of hard to discern why there are differences. With that old version of containerd vs newer version of docker/docker shim in kublet you are also comparing old golang vs newer golang. Some container images will work better on docker's graph driver others will work better on containerd, also depends on which FS you are using. Containerd shim v2 is much better than the old v1 shim. So many changes over the last two years. |
Beta Was this translation helpful? Give feedback.
-
We have used moby in our production env for a long time, and recently we decided to explorer the possibility to replace docker(moby) with containerd for it's simplicity, and we have done some tests between containerd and moby.
The first test we do is pod_start_up_latency. Theoretically, containerd should perform better in latency, and that is what we have got from a lot of blog or papers( like the offical GA POST) .
test env: 2 vm with same flavor. vm1 start kubelet with docker 18.09.6, vm2 start kubelet with
--container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock
。both vm1 and vm2 use containerd 1.2.6(894b81a)test process: start 50 pods with same predownload images, and check the pod_start_latency metrics for kubelet.
result: i run the test 5 times. moby performs 10% better in pod_start_latency than containerd
Beta Was this translation helpful? Give feedback.
All reactions