Вопрос или проблема
У меня очень странная проблема, которая возникает, когда я устанавливаю роль Hyper-V.
Когда я тестирую случайное чтение с помощью fio в Windows, не включая эту роль, вот результат:
C:\Users\Administrator>fio --name=mytest --filename=\\.\PhysicalDrive0 --rw=randread --bs=4K --ioengine=windowsaio --direct=1 --time_based --runtime=30 --group_reporting --iodepth=16 --thread=1
mytest: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=windowsaio, iodepth=16
fio-3.38
Starting 1 thread
Jobs: 1 (f=1): [r(1)][100.0%][r=263MiB/s][r=67.4k IOPS][eta 00m:00s]
mytest: (groupid=0, jobs=1): err= 0: pid=7052: Sun Dec 15 08:47:43 2024
read: IOPS=66.9k, BW=261MiB/s (274MB/s)(7843MiB/30001msec)
slat (usec): min=2, max=2163, avg=10.11, stdev=10.09
clat (nsec): min=600, max=2419.4k, avg=195015.61, stdev=81577.01
lat (usec): min=58, max=2422, avg=205.13, stdev=81.23
clat percentiles (usec):
| 1.00th=[ 85], 5.00th=[ 104], 10.00th=[ 117], 20.00th=[ 133],
| 30.00th=[ 145], 40.00th=[ 157], 50.00th=[ 172], 60.00th=[ 188],
| 70.00th=[ 217], 80.00th=[ 269], 90.00th=[ 314], 95.00th=[ 347],
| 99.00th=[ 412], 99.50th=[ 445], 99.90th=[ 562], 99.95th=[ 816],
| 99.99th=[ 1565]
bw ( KiB/s): min=145579, max=285433, per=99.39%, avg=266084.02, stdev=16882.84, samples=60
iops : min=36394, max=71358, avg=66520.80, stdev=4220.82, samples=60
lat (nsec) : 750=0.01%, 1000=0.01%
lat (usec) : 10=0.01%, 20=0.01%, 50=0.01%, 100=3.75%, 250=73.10%
lat (usec) : 500=22.95%, 750=0.13%, 1000=0.03%
lat (msec) : 2=0.03%, 4=0.01%
cpu : usr=10.00%, sys=50.00%, ctx=0, majf=0, minf=0
IO depths : 1=0.1%, 2=0.2%, 4=2.7%, 8=76.2%, 16=20.9%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=91.5%, 8=6.5%, 16=1.9%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=2007851,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=16
Run status group 0 (all jobs):
READ: bw=261MiB/s (274MB/s), 261MiB/s-261MiB/s (274MB/s-274MB/s), io=7843MiB (8224MB), run=30001-30001msec
Однако после установки роли Hyper-V вот результат:
C:\Users\Administrator>fio --name=mytest --filename=\\.\PhysicalDrive0 --rw=randread --bs=4K --ioengine=windowsaio --direct=1 --time_based --runtime=30 --group_reporting --iodepth=16 --thread=1
mytest: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=windowsaio, iodepth=16
fio-3.38
Starting 1 thread
Jobs: 1 (f=0): [f(1)][100.0%][r=32.6MiB/s][r=8340 IOPS][eta 00m:00s]
mytest: (groupid=0, jobs=1): err= 0: pid=3464: Sun Dec 15 02:11:47 2024
read: IOPS=8576, BW=33.5MiB/s (35.1MB/s)(1005MiB/30001msec)
slat (nsec): min=900, max=1713.1k, avg=68365.34, stdev=53265.52
clat (nsec): min=300, max=6338.8k, avg=987036.65, stdev=485911.83
lat (usec): min=5, max=6568, avg=1055.40, stdev=485.74
clat percentiles (usec):
| 1.00th=[ 161], 5.00th=[ 239], 10.00th=[ 322], 20.00th=[ 490],
| 30.00th=[ 652], 40.00th=[ 816], 50.00th=[ 988], 60.00th=[ 1139],
| 70.00th=[ 1319], 80.00th=[ 1483], 90.00th=[ 1647], 95.00th=[ 1745],
| 99.00th=[ 1909], 99.50th=[ 1991], 99.90th=[ 2147], 99.95th=[ 2311],
| 99.99th=[ 2835]
bw ( KiB/s): min=31757, max=35584, per=100.00%, avg=34335.31, stdev=782.27, samples=59
iops : min= 7939, max= 8896, avg=8583.49, stdev=195.59, samples=59
lat (nsec) : 500=0.01%
lat (usec) : 4=0.01%, 10=0.05%, 20=0.04%, 50=0.02%, 100=0.19%
lat (usec) : 250=5.43%, 500=14.94%, 750=15.29%, 1000=15.06%
lat (msec) : 2=48.57%, 4=0.41%, 10=0.01%
cpu : usr=3.33%, sys=53.33%, ctx=0, majf=0, minf=0
IO depths : 1=0.1%, 2=8.7%, 4=27.9%, 8=56.3%, 16=7.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=93.4%, 8=0.1%, 16=6.6%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=257295,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=16
Run status group 0 (all jobs):
READ: bw=33.5MiB/s (35.1MB/s), 33.5MiB/s-33.5MiB/s (35.1MB/s-35.1MB/s), io=1005MiB (1054MB), run=30001-30001msec
Как вы можете видеть, мы наблюдаем резкое падение производительности случайного чтения.
Не может ли быть, что установка роли Hyper-V как-то изменяет механизм хранения в Windows?
Я пробовал в виртуальной машине, и результат такой же, даже когда я передаю устройство напрямую (не используя vhdx, просто прямую передачу устройства в виртуальную машину).
Кто-нибудь сталкивался с этим?
Большое спасибо заранее,
С уважением,
Франсуа
Ответ или решение
Проблема снижения производительности хранилища после установки роли Hyper-V
Введение
Здравствуйте, Франсуа! Вы столкнулись с серьезной проблемой после установки роли Hyper-V в Windows: ваше измерение скорости чтения с использованием инструмента fio показывает резкое падение производительности после активации этой роли. Мы разберем возможные причины и решения данного вопроса, а также проанализируем, как роль Hyper-V может влиять на механизм работы со хранилищем.
Анализ проблемы
Ваши результаты показали, что:
-
Без роли Hyper-V: Скорость чтения составила 261 МБ/с и 66.9 тыс. IOPS.
-
С установленной ролью Hyper-V: Скорость чтения упала до 33.5 МБ/с и 8.5 тыс. IOPS.
Такое резкое снижение производительности вызывает вопросы о том, как Hyper-V может влиять на работу с физическим хранилищем.
Причины снижения производительности
-
Изменение механизмов доступа к дискам: Установка роли Hyper-V может изменить настройки, связанные с доступом к физическим устройствам в Windows. Hyper-V использует различные уровни абстракции для управления виртуальными машинами, что может заблокировать или ограничить прямой доступ к физическому диску, даже если вы используете прямую передачу (passthrough).
-
Приоритеты процессов ввода-вывода: Hyper-V может изменять приоритеты выполнения операций ввода-вывода (I/O), что может снизить производительность вашего теста, поскольку Hyper-V приоритизирует задачи, связанные с виртуальными машинами. Даже если ваша установка использует прямое включение, Hyper-V может все равно вмешиваться в поведение системы ввода-вывода.
-
Виртуальные коммутатор и сетевые параметры: Установка Hyper-V может также повлиять на настройки сетевого хранилища или виртуальных коммутаторов, если вы используете такие технологии. Изменения в конфигурации сети могут иногда сказываться на производительности ввода-вывода.
-
Параметры управления питанием: Иногда параметры управления питанием, активируемые после установки роли Hyper-V, могут привести к снижению производительности дисковых операций. Убедитесь, что настройки управления питанием оптимизированы для высокопроизводительных сценариев.
Рекомендации по устранению проблемы
-
Проверьте настройки Hyper-V: Убедитесь, что параметры Hyper-V не конфликтуют с вашими настройками хранилища. Пересмотрите настройки планировщика ввода-вывода и убедитесь, что они оптимизированы для работы с физическим хранилищем.
-
Используйте соответствующие драйвера: Убедитесь, что используете последние версии драйверов и прошивок для вашего оборудования. Старые драйвера могут не обеспечивать необходимую производительность при использовании Hyper-V.
-
Проверьте параметры управления питанием: Убедитесь, что параметр управления питанием установлен на «Максимальная производительность» в настройках системы. Это может предотвратить уменьшение производительности дискового ввода-вывода.
-
Запустите дополнительные тесты: Проверьте производительность в разных сценариях, включая использование VHDX и аналогичные конфигурации, чтобы увидеть, как разные параметры влияют на вашу производительность.
-
Мониторинг нагрузки: Используйте инструменты мониторинга, чтобы проанализировать, какая часть системы может быть узким местом. Проверка нагрузки на процессор, память и диски во время тестов поможет выявить причины падения производительности.
Заключение
Проблемы производительности после установки роли Hyper-V могут иметь множество источников. Важно провести детальный анализ и оптимизацию настроек, чтобы вернуть систему к оптимальным показателям производительности. Если указанные шаги не приведут к улучшению, возможно, стоит рассмотреть альтернативные конфигурации или даже обратиться в службу технической поддержки Microsoft для дальнейшей диагностики проблемы.
Надеюсь, данный анализ был полезен вам. Если появятся дополнительные вопросы, не стесняйтесь обращаться!
С уважением,
[Ваше Имя]
IT Эксперт