Вопрос: Производительность файловых систем Loopback


Кто-нибудь сделал какие-либо тесты производительности / тестирования в Linux-системах Linux? Каков ваш опыт до сих пор. Есть ли серьезная деградация в производительности? Как насчет надежности?

http://freshmeat.net/articles/virtual-filesystem-building-a-linux-filesystem-from-an-ordinary-file


8
2017-08-03 18:01


Источник


Должно быть довольно просто запустить bonnie ++ на вашем родном диске и на кольцевом диске, чтобы сравнить производительность. - ceving


Ответы:


Я немного сравнился с операциями записи в устройстве loopback. Вот вывод:

  • Если вы синхронизируете после каждой записи, то устройство loopback выполняет значительно хуже (почти в два раза медленнее).
  • Если вы разрешаете кешу диска планировщику ввода-вывода выполнять свою работу, то вряд ли существует какая-либо разница между использованием loopback-устройства и прямым доступом к диску.

Результаты тестов

Во-первых, я проверил бенчмарк на устройстве loopback в tmpfs 8GB и устройство loopback в этом устройстве loopback (с синхронизацией после каждой операции записи):

ext4 в tmpfs:

Measured speed: 557, 567, 563, 558, 560, 559, 556, 556, 554, 557
Average speed : 558.7 MB/s  (min 554  max 560)

ext4 в extf в tmpfs:

Measured speed: 296, 298, 295, 295, 299, 297, 294, 295, 296, 296
Average speed : 296.1 MB/s  (min 294  max 299)

Очевидно, что при использовании loopback-устройств с синхронизацией-записи существует некоторая разница в производительности.
Затем я повторил тот же тест на своем жестком диске.
ext4 (HDD, 1000 МБ, 3 раза):

Measured speed: 24.1, 23.6, 23.0
Average speed : 23.5 MB/s  (min 23.0  max 24.1)

ext4 в ext4 (HDD, 945MB):

Measured speed: 12.9, 13.0, 12.7
Average speed : 12.8 MB/s  (min 12.7  max 13.0)

Тот же тест на жестком диске, теперь без синхронизации после каждой записи (time (dd if=/dev/zero bs=1M count=1000 of=file; sync), измеренный как <size>/<time in seconds>).
ext4 (HDD, 1000 МБ):

Measured speed: 84.3, 86.1, 83.9, 86.1, 87.7
Average speed : 85.6 MB/s  (min 84.3  max 87.7)

ext4 в ext4 (HDD, 945MB):

Measured speed: 89.9, 97.2, 82.9, 84.0, 82.7
Average speed : 87.3 MB/s  (min 82.7  max 97.2)

(удивительно, что тест loopback выглядит лучше, чем контрольный тест raw-disk, предположительно из-за меньшего размера устройства loopback, поэтому меньше времени тратится на фактическую синхронизацию с диском)

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

Во-первых, я создал файловую систему loopback из 8G в моем / tmp (tmpfs):

truncate /tmp/file -s 8G
mkfs.ext4 /tmp/file
sudo mount /tmp/file /mnt/
sudo chown $USER /mnt/

Затем я установил базовый уровень, заполнив собранный файл loopback данными:

$ dd if=/dev/zero bs=1M of=/mnt/bigfile oflag=sync
dd: error writing '/mnt/bigfile': No space left on device
7492+0 records in
7491+0 records out
7855763456 bytes (7.9 GB) copied, 14.0959 s, 557 MB/s

После этого я создал другое устройство обратной связи в предыдущем устройстве loopback:

mkdir /tmp/mountpoint
mkfs.ext4 /mnt/bigfile
sudo mount /mnt/bigfile /tmp/mountpoint
sudo chown $USER /tmp/mountpoint

И снова провела тест, десять раз:

$ dd if=/dev/zero bs=1M of=/tmp/mountpoint/file oflag=sync
...
7171379200 bytes (7.2 GB) copied, 27.0111 s, 265 MB/s

а затем я отключил тестовый файл и удалил его:

sudo umount /tmp/mountpoint
sudo umount /mnt

(аналогично для теста на жестком диске, за исключением того, что я также добавил count=1000 чтобы тест не заполнил весь мой диск)
(и для теста без записи на синхронизацию я провел время dd а также sync операция)


7
2017-12-24 23:53





У меня не было проблем. Все это было потрясающе. Кэш файловой системы и планировщик ввода-вывода в Linux достаточно разумны, чтобы не было никакой заметной разницы между запросом на диск напрямую и запросом раздела файла на диске.


0
2017-11-08 00:24