Согласно документации докера , если --memory-swap
не установлено и установлено --memory
, контейнер может использовать вдвое больше swap
, чем параметр --memory
, если хост-контейнер имеет Память подкачки настроена.
Таким образом, две следующие команды эквивалентны:
docker run --rm -it -m 128m progrium/stress --vm 1 --vm-bytes 300M --vm-hang 0
docker run --rm -it -m 128m --memory-swap 384m progrium/stress --vm 1 --vm-bytes 300M --vm-hang 0
К сожалению, это не дает того же результата.
docker run --rm -it -m 128m progrium/stress --vm 1 --vm-bytes 300M --vm-hang 0
stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: dbug: [1] using backoff sleep of 3000us
stress: dbug: [1] --> hogvm worker 1 [5] forked
stress: dbug: [5] allocating 314572800 bytes ...
stress: dbug: [5] touching bytes in strides of 4096 bytes ...
stress: FAIL: [1] (416) <-- worker 5 got signal 9
stress: WARN: [1] (418) now reaping child worker processes
stress: FAIL: [1] (422) kill error: No such process
stress: FAIL: [1] (452) failed run completed in 4s
# docker run --rm -it -m 128m --memory-swap 384m progrium/stress --vm 1 --vm-bytes 300M --vm-hang 0
stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: dbug: [1] using backoff sleep of 3000us
stress: dbug: [1] --> hogvm worker 1 [5] forked
stress: dbug: [5] allocating 314572800 bytes ...
stress: dbug: [5] touching bytes in strides of 4096 bytes ...
stress: dbug: [5] sleeping forever with allocated memory
Мне кажется, что в документации есть ошибка. Фактически, если --memory-swap
не установлено, а --memory
установлено, значение --memory-swap
устанавливается в два раза больше, чем параметр --memory
. Я искал в коде докера , но не нашел ничего, что подтверждает или опровергает то, что я только что объяснил.
Может ли кто-нибудь объяснить эту бессвязность.