проблема
У меня очень медленный дисковый ввод-вывод в контейнере 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? Или может быть другая проблема в игре?
Ответы:
так что вы используете макинтош. Это означает, что вы устанавливаете докер на virtualbox ... так вот, как идет хранение
Таким образом, вы добавляете еще один слой VM поверх того, что уже есть на нем.
Я не думаю, что кто-то утверждал, что док-станция IO будет работать так же, как вы видите на хосте.
источник
Проблема в vboxsf, а не в docker. Провёл дни, играя с этим. vboxsf невероятно медленно работает. NFS быстрее, зависит от того, что вы хотите сделать.
Я решил, что мне все равно не нужны файлы на моем хосте, поэтому впоследствии просто создал новый виртуальный диск в моем бродячем файле, к которому мой источник был клонирован, и затем я просто создал его.
Это трудно сделать с помощью boot2docker, который я обнаружил, поэтому я просто использую виртуальную коробку и vagrant с созданным мной образом, hp-ess / docker, в котором собраны последние версии docker и docker.
источник