Только ±10% пропускной способности хранилища доступно после установки роли HyperV.

Вопрос или проблема

У меня очень странная проблема, которая возникает, когда я устанавливаю роль 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 может влиять на работу с физическим хранилищем.

Причины снижения производительности

  1. Изменение механизмов доступа к дискам: Установка роли Hyper-V может изменить настройки, связанные с доступом к физическим устройствам в Windows. Hyper-V использует различные уровни абстракции для управления виртуальными машинами, что может заблокировать или ограничить прямой доступ к физическому диску, даже если вы используете прямую передачу (passthrough).

  2. Приоритеты процессов ввода-вывода: Hyper-V может изменять приоритеты выполнения операций ввода-вывода (I/O), что может снизить производительность вашего теста, поскольку Hyper-V приоритизирует задачи, связанные с виртуальными машинами. Даже если ваша установка использует прямое включение, Hyper-V может все равно вмешиваться в поведение системы ввода-вывода.

  3. Виртуальные коммутатор и сетевые параметры: Установка Hyper-V может также повлиять на настройки сетевого хранилища или виртуальных коммутаторов, если вы используете такие технологии. Изменения в конфигурации сети могут иногда сказываться на производительности ввода-вывода.

  4. Параметры управления питанием: Иногда параметры управления питанием, активируемые после установки роли Hyper-V, могут привести к снижению производительности дисковых операций. Убедитесь, что настройки управления питанием оптимизированы для высокопроизводительных сценариев.

Рекомендации по устранению проблемы

  1. Проверьте настройки Hyper-V: Убедитесь, что параметры Hyper-V не конфликтуют с вашими настройками хранилища. Пересмотрите настройки планировщика ввода-вывода и убедитесь, что они оптимизированы для работы с физическим хранилищем.

  2. Используйте соответствующие драйвера: Убедитесь, что используете последние версии драйверов и прошивок для вашего оборудования. Старые драйвера могут не обеспечивать необходимую производительность при использовании Hyper-V.

  3. Проверьте параметры управления питанием: Убедитесь, что параметр управления питанием установлен на «Максимальная производительность» в настройках системы. Это может предотвратить уменьшение производительности дискового ввода-вывода.

  4. Запустите дополнительные тесты: Проверьте производительность в разных сценариях, включая использование VHDX и аналогичные конфигурации, чтобы увидеть, как разные параметры влияют на вашу производительность.

  5. Мониторинг нагрузки: Используйте инструменты мониторинга, чтобы проанализировать, какая часть системы может быть узким местом. Проверка нагрузки на процессор, память и диски во время тестов поможет выявить причины падения производительности.

Заключение

Проблемы производительности после установки роли Hyper-V могут иметь множество источников. Важно провести детальный анализ и оптимизацию настроек, чтобы вернуть систему к оптимальным показателям производительности. Если указанные шаги не приведут к улучшению, возможно, стоит рассмотреть альтернативные конфигурации или даже обратиться в службу технической поддержки Microsoft для дальнейшей диагностики проблемы.

Надеюсь, данный анализ был полезен вам. Если появятся дополнительные вопросы, не стесняйтесь обращаться!

С уважением,
[Ваше Имя]
IT Эксперт

Оцените материал
Добавить комментарий

Капча загружается...