Низкая производительность диска в контейнере Docker

4

проблема

У меня очень медленный дисковый ввод-вывод в контейнере Docker. Я использую Boot2Docker, так что мне сейчас интересно, если проблема vboxsf?

тестирование

я использовал этот скрипт Первоначально, потому что я отлаживал веб-приложение, но кажется, что это сам диск для чтения.

  • В докере: 1.6156311035156
  • Host: 0.022423028945923

Я проверил скорость диска с dd и результаты в контейнере:

$ time sh -c "dd if=/dev/zero of=ddfile bs=8k count=25000 && sync"; rm ddfile
25000+0 records in
25000+0 records out
204800000 bytes (205 MB) copied, 4.23099 s, 48.4 MB/s

real    0m4.241s
user    0m0.000s
sys 0m2.110s

И на хосте:

$ time sh -c "dd if=/dev/zero of=ddfile bs=8k count=25000 && sync"; rm ddfile
25000+0 records in
25000+0 records out
204800000 bytes transferred in 0.482290 secs (424640750 bytes/sec)
sh -c "dd if=/dev/zero of=ddfile bs=8k count=25000 && sync"  
0.01s user 0.30s system 48% cpu 0.650 total

Хост выводится в байтах, а контейнер - в мегабайтах, но при преобразовании этих чисел разница в скорости примерно в 10 раз превышает скорость.

Я использую Docker -v host / folder: container: / folder для монтирования базы кода в контейнер. Я не совсем уверен, куда идти отсюда. Есть ли какие-то известные проблемы с монтированием Docker? Или может быть другая проблема в игре?


источник
Из чего состоит ваше хранилище?
Michael Hampton
Это Macbook Pro с твердотельным накопителем Intel. Почему голосование за?

Ответы:

5

так что вы используете макинтош. Это означает, что вы устанавливаете докер на virtualbox ... так вот, как идет хранение

os x -> virtualbox vm -> linux FS of choice -> aufs -> docker

Таким образом, вы добавляете еще один слой VM поверх того, что уже есть на нем.

Я не думаю, что кто-то утверждал, что док-станция IO будет работать так же, как вы видите на хосте.

Mike
источник
Спасибо, я не говорил, что кто-то это утверждал, я просто не понимал, почему у меня такая медлительность. Я обнаружил некоторые проблемы с Github относительно vboxfs и возможности использования NFS как альтернативы. Это поможет здесь?
5

Проблема в vboxsf, а не в docker. Провёл дни, играя с этим. vboxsf невероятно медленно работает. NFS быстрее, зависит от того, что вы хотите сделать.

Я решил, что мне все равно не нужны файлы на моем хосте, поэтому впоследствии просто создал новый виртуальный диск в моем бродячем файле, к которому мой источник был клонирован, и затем я просто создал его.

Это трудно сделать с помощью boot2docker, который я обнаружил, поэтому я просто использую виртуальную коробку и vagrant с созданным мной образом, hp-ess / docker, в котором собраны последние версии docker и docker.

Stono
источник