Я пытаюсь протестировать драйвер nova-docker в моем небольшом развертывании Openstack. Тот факт, что я говорю об Openstack, не имеет значения, поскольку тот же результат наблюдается просто при запуске стандартного контейнера Docker из CLI. Все работает довольно хорошо, но я вижу очень странный результат. Если я запустил небольшую копию dd на моем хосте
4294959104 bytes (4.3 GB) copied, 31.1396 s, 138 MB/s
real 0m31.670s
user 0m0.000s
sys 0m4.898s
Если я использую Docker, а точнее стандартный контейнер ubuntu (или nova-docker), я получаю
4294959104 bytes (4.3 GB, 4.0 GiB) copied, 27.8834 s, 154 MB/s
real 0m27.896s
user 0m0.000s
sys 0m1.391s
Как видите, в этом нет никакого смысла, поскольку мой контейнер сообщает, что он быстрее, чем хост. Это также наблюдается при выполнении тестов ввода-вывода с помощью sysbench. Кто-нибудь может объяснить такое поведение?
контейнер - это не виртуализация, а изоляция, контейнер - это обычный процесс, работающий в другом пространстве имен, поэтому контейнер может использовать ресурс хоста как обычный процесс, если вы хотите ограничить использование контейнера, вам нужно cgroup или использовать параметры ограничения докеров .