
Если кому интересно, мы тут недавно потестили производительность чтение/запись внутри виртуальной машины на ноде с Proxmox 4.3.
Хостовая система была установленна на raid10 реализованный двумя разными способами (zfs и mdadm+lvm)
Тесты проводились на Windows-госте, так-как в первую очередь интересовала производительность именно этой ОС.
Забегая вперед скажу, что mdadm+lvm почти по во всех тестах показал себя с более хорошей стороны нежели чем zfs, даже не смотря на то, что в zfs был добавлен кэширующий SSD.
Так же в результатах теста можно увидеть насколько writeback кэш влияет на скорось чтения и записи.
Мысль о написании данной статьи навели коментарии к недавней статье про Установку PROXMOX 4.3 на Soft-RAID 10 GPT от vasyakrg. Не холивара ради, но я решил опубликовать наши недавние результаты.
Водные данные:
Нода:
CPU: Intel® Core(TM) i7-3820 CPU @ 3.60GHz
RAM: 20GB (1334 MHz)
HDD: 4x500GIB (ST500NM0011, ST500NM0011, ST3500418AS, WDC WD5000AAKX-22ERMA0)
SSD: 250GiB (PLEXTOR PX-256M5Pro)
OS: Proxmox Virtual Environment 4.3-10
Виртуальная машина:
CPU: 8 (1 sockets, 8 cores)
RAM: 6.00 GiB
HDD: 60 GiB (virtio)
OS: Windows Server 2008 R2 Server Standard (full installation) SP1 [6.1 Build 7601] (x64)
Все результаты получены с помощью утилиты CrystalDiskMark 5.2.0 x64
Результаты:
Итак сами результаты:
raid10 on zfs + ssd (writeback cache):
----------------------------------------------------------------------- CrystalDiskMark 5.2.0 x64 (C) 2007-2016 hiyohiyo Crystal Dew World : http://crystalmark.info/ ----------------------------------------------------------------------- * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s] * KB = 1000 bytes, KiB = 1024 bytes Sequential Read (Q= 32,T= 1) : 532.160 MB/s Sequential Write (Q= 32,T= 1) : 281.028 MB/s Random Read 4KiB (Q= 32,T= 1) : 20.564 MB/s [ 5020.5 IOPS] Random Write 4KiB (Q= 32,T= 1) : 7.821 MB/s [ 1909.4 IOPS] Sequential Read (T= 1) : 854.433 MB/s Sequential Write (T= 1) : 249.158 MB/s Random Read 4KiB (Q= 1,T= 1) : 2.620 MB/s [ 639.6 IOPS] Random Write 4KiB (Q= 1,T= 1) : 7.613 MB/s [ 1858.6 IOPS] Test : 32768 MiB [E: 0.1% (0.1/60.0 GiB)] (x5) [Interval=5 sec] Date : 2016/11/08 10:15:08 OS : Windows Server 2008 R2 Server Standard (full installation) SP1 [6.1 Build 7601] (x64)
запуск виртуалок на zfs без кэша не поддерживается, так что результатов с ‘no cache’ не будет.
raid10 on mdadm + lvm (wrtiteback cache):
----------------------------------------------------------------------- CrystalDiskMark 5.2.0 x64 (C) 2007-2016 hiyohiyo Crystal Dew World : http://crystalmark.info/ ----------------------------------------------------------------------- * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s] * KB = 1000 bytes, KiB = 1024 bytes Sequential Read (Q= 32,T= 1) : 1084.752 MB/s Sequential Write (Q= 32,T= 1) : 503.291 MB/s Random Read 4KiB (Q= 32,T= 1) : 31.148 MB/s [ 7604.5 IOPS] Random Write 4KiB (Q= 32,T= 1) : 203.832 MB/s [ 49763.7 IOPS] Sequential Read (T= 1) : 1890.617 MB/s Sequential Write (T= 1) : 268.878 MB/s Random Read 4KiB (Q= 1,T= 1) : 33.369 MB/s [ 8146.7 IOPS] Random Write 4KiB (Q= 1,T= 1) : 54.938 MB/s [ 13412.6 IOPS] Test : 32768 MiB [E: 0.1% (0.1/60.0 GiB)] (x5) [Interval=5 sec] Date : 2016/11/08 14:55:15 OS : Windows Server 2008 R2 Server Standard (full installation) SP1 [6.1 Build 7601] (x64)
raid10 on mdadm + lvm (no cache):
----------------------------------------------------------------------- CrystalDiskMark 5.2.0 x64 (C) 2007-2016 hiyohiyo Crystal Dew World : http://crystalmark.info/ ----------------------------------------------------------------------- * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s] * KB = 1000 bytes, KiB = 1024 bytes Sequential Read (Q= 32,T= 1) : 274.338 MB/s Sequential Write (Q= 32,T= 1) : 171.358 MB/s Random Read 4KiB (Q= 32,T= 1) : 3.489 MB/s [ 851.8 IOPS] Random Write 4KiB (Q= 32,T= 1) : 0.927 MB/s [ 226.3 IOPS] Sequential Read (T= 1) : 233.437 MB/s Sequential Write (T= 1) : 183.158 MB/s Random Read 4KiB (Q= 1,T= 1) : 0.522 MB/s [ 127.4 IOPS] Random Write 4KiB (Q= 1,T= 1) : 2.499 MB/s [ 610.1 IOPS] Test : 32768 MiB [E: 0.1% (0.1/60.0 GiB)] (x5) [Interval=5 sec] Date : 2016/11/08 15:21:41 OS : Windows Server 2008 R2 Server Standard (full installation) SP1 [6.1 Build 7601] (x64)
Ради интереса мы так же запустили тесты на голом SSD:
ssd-drive (wrtiteback cache):
----------------------------------------------------------------------- CrystalDiskMark 5.2.0 x64 (C) 2007-2016 hiyohiyo Crystal Dew World : http://crystalmark.info/ ----------------------------------------------------------------------- * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s] * KB = 1000 bytes, KiB = 1024 bytes Sequential Read (Q= 32,T= 1) : 1587.672 MB/s Sequential Write (Q= 32,T= 1) : 524.242 MB/s Random Read 4KiB (Q= 32,T= 1) : 248.953 MB/s [ 60779.5 IOPS] Random Write 4KiB (Q= 32,T= 1) : 320.532 MB/s [ 78254.9 IOPS] Sequential Read (T= 1) : 2481.313 MB/s Sequential Write (T= 1) : 825.351 MB/s Random Read 4KiB (Q= 1,T= 1) : 58.060 MB/s [ 14174.8 IOPS] Random Write 4KiB (Q= 1,T= 1) : 59.725 MB/s [ 14581.3 IOPS] Test : 32768 MiB [F: 0.1% (0.1/60.0 GiB)] (x5) [Interval=5 sec] Date : 2016/11/09 13:28:20 OS : Windows Server 2008 R2 Server Standard (full installation) SP1 [6.1 Build 7601] (x64)
ssd-drive (no cache):
----------------------------------------------------------------------- CrystalDiskMark 5.2.0 x64 (C) 2007-2016 hiyohiyo Crystal Dew World : http://crystalmark.info/ ----------------------------------------------------------------------- * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s] * KB = 1000 bytes, KiB = 1024 bytes Sequential Read (Q= 32,T= 1) : 526.147 MB/s Sequential Write (Q= 32,T= 1) : 361.292 MB/s Random Read 4KiB (Q= 32,T= 1) : 189.502 MB/s [ 46265.1 IOPS] Random Write 4KiB (Q= 32,T= 1) : 78.780 MB/s [ 19233.4 IOPS] Sequential Read (T= 1) : 456.598 MB/s Sequential Write (T= 1) : 368.912 MB/s Random Read 4KiB (Q= 1,T= 1) : 18.632 MB/s [ 4548.8 IOPS] Random Write 4KiB (Q= 1,T= 1) : 32.528 MB/s [ 7941.4 IOPS] Test : 32768 MiB [F: 0.1% (0.1/60.0 GiB)] (x5) [Interval=5 sec] Date : 2016/11/09 12:56:31 OS : Windows Server 2008 R2 Server Standard (full installation) SP1 [6.1 Build 7601] (x64)
Графики:
Для наглядности я решил нарисовать несколько графиков
Скорость на чтение и запись блоками стандартного размера:

Скорость на чтение и запись 4K-блоками:

Количество IOPS на чтение:

Количество IOPS на запись:

Выводы:
Я хотел потестировать zfs в режиме zvol (блочные устройства), мне кажется здесь он мог бы показать результаты получше. Но в настоящее время zfs-драйвер в proxmox поддерживает размещение дисков только в файловой системе.
Для себя мы решили, что zfs в той конфигурации что сейчас есть, не смотря на активное продвижение со стороны proxmox, пока что не в состоянии обеспечить такую же производительность, какую способна обеспечить класическая связка mdadm+lvm.
Так же достаточно хороших результатов позволяет добится включение writeback-кэша для Windows виртуальных машин. Но стоит отметить, что для Linux-виртуалок эта опция не прибавит производительности. (они и так хорошо работают)
На этом пожалуй все, если у вас есть какие-либо предложения на тему того, как еще можно увеличить производительность дисковых операций на гостевой машине, с радостью их выслушаю.
ссылка на оригинал статьи https://habrahabr.ru/post/315334/
Добавить комментарий