У меня есть веб-приложение Rocket, упакованное в образ Docker.Приложение использует в 4 или 5 раз больше памяти при запуске и развертывании в нашей среде Kubernetes (на некоторых хостах Linux Docker), чем использование памяти в качестве контейнера на хосте Docker для ноутбуков Mac.
Что может вызвать эту разницу в памяти?
Локально (как контейнер, работающий в моей док-станции для ноутбука Mac):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 187944 18916 12308 S 0.0 0.9 0:00.12 backend
25 root 20 0 41024 3116 2668 R 0.0 0.2 0:00.03 top
На хосте докера Linux (или на kubernetes):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 239244 108408 10840 S 0.0 0.3 0:00.67 backend
38 root 20 0 18144 3260 2820 S 0.0 0.0 0:00.00 bash
44 root 20 0 41032 3124 2660 R 0.0 0.0 0:00.00 top
Вы можете видеть, что RES
значение процесса backend
намного выше, чем при работе в Kubernetes
Я дважды проверил, что версии изображений точно такие же.