Я некоторое время тестировал производительность запуска различных контейнерных решений. Я вижу, что существует огромный разрыв между запуском среды выполнения, совместимой с OCI, такой как runC, и тем же путем запуска докера. Я использую date +%s%N
для получения метки времени, затем запускаю контейнер с той же командой для сбора второй метки времени.
Например, на одной из моих тестовых машин (Ubuntu 18.04, ядро 4.15) я измеряю запуск docker (18.09) с альпийским изображением, равным 600 ms
, при запуске runC (1.0.0-rc5) с тем же образом распаковывая в папку, я получаю 160 ms
.
Я понимаю, что Docker использует модель клиент-сервер, вызов должен проходить через Engine, containerd, также создается процесс подкладки. Файловая система overlay2 должна быть создана. Но это все еще чувствует неожиданную разницу для меня.
Кто-нибудь, возможно, изучал это раньше?
Daniel