8 / 8 / 1
Регистрация: 17.11.2013
Сообщений: 467
1

Скорости различных виртуальных дисков на NVMe

04.01.2025, 23:07. Показов 668. Ответов 12

Author24 — интернет-сервис помощи студентам
Всем привет.
Вопросы про виртуальные диски внутри вм.


Железо и ОС
CPU: Intel i5 10 поколения (ноутбучный)
RAM: 64 ГБ DDR4
SSD: NVMe Kingston 1 ТБ PCIe 4 (7 ГБ/сек, но ноутбук с PCIe 3)
OS: Win11 x64

Виртуальные машины
Для тестов использовались:
- 3 виртуальные машины
- одинаковые для всех вм Win7 x64
- одинаково чистые Win7, кроме установленной VMware Tools и папок с Portable-программами для тестов дисков
___
#1 вм - диск разбит несколькими файлами, ограничение в 40 ГБ.
#2 вм - диск в одном файле, ограничение в 40 ГБ.
#3 вм - диск в одном файле + сразу зарезервировано 40 ГБ.


Проблема
Тест Atto Disk Benchmark показывает разные результаты в идентичных системах.

Итоги теста
#Вм - Чтен/Зап (больш файлы) --- Чтен/Зап (4 кб) --- Задержки (мс)(9-й проход DiskSpd)
#1 вм - 2.93 ГБ/2.58 ГБ --- 110 МБ/104 МБ --- 29 мс
#2 вм - почти идентично с вм #1 (~-5%) --- 40 мс
#3 вм - 1.29 ГБ/1.09 ГБ --- 78 МБ/73 МБ --- 34 мс

Вопросы

1. Почему при заранее выделенном полном объёме диска скорости чтения и записи значительно упали, а именно в 2 с лишним раза на больших файлах? Причём давно читаю из интернета, что для лучшей производительности виртуального(!) диска внутри вм нужно сразу выделять весь объём, а на деле наоборот.

2. Т.к. в ноутбуке установлен NVMe, не вредно ли для него использование динамически расширяемых дисков (#1 и #2 вм)? Не перезаписываются ли файлы vmdk ежесекунжно на NVMe? Потому что при включённой вм файл меняет ежесекундно свой размер (а размеры по 15 ГБ+). Это же не 15 ГБ перезаписей ежесекундно?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.01.2025, 23:07
Ответы с готовыми решениями:

Создание виртуальных дисков
Здравствуйте! Подскажите пожалуйста литературы по теме: "Обзор программ создания виртуальных дисков и сравнение их возможностей" ...

Пороговые значения SMART у NVME дисков
Доброго времени суток. Давно задаюсь вопросом, почему при чтении смарта у обычных винчестеров и ссд определяются пороговые значения данных,...

Программы создания виртуальных образов дисков!
Доброго времени суток! Где можно взять качественные картинки коробок программ Daemon Tools, Alcohol 120%, Virtual CD и Nero Image Drive? ...

Программа для объединения двух виртуальных дисков
нужно склеить два виртуальных диска какая прога есть кроме акрониса

12
Native x86
Эксперт Hardware
 Аватар для quwy
5681 / 3415 / 965
Регистрация: 13.02.2013
Сообщений: 10,844
05.01.2025, 01:17 2
Цитата Сообщение от Vasek2 Посмотреть сообщение
Почему при заранее выделенном полном объёме диска скорости чтения и записи значительно упали, а именно в 2 с лишним раза на больших файлах?
Потому что в этом случае система не может использовать команду trim, и SSD вынужден очищать flash-память прямо перед записью данных (замедляя всю процедуру записи), а не заблаговременно (при удалении файлов или во время простоя).

Цитата Сообщение от Vasek2 Посмотреть сообщение
давно читаю из интернета, что для лучшей производительности виртуального(!) диска внутри вм нужно сразу выделять весь объём
Это касается классического HDD.

Цитата Сообщение от Vasek2 Посмотреть сообщение
Не перезаписываются ли файлы vmdk ежесекунжно на NVMe? Потому что при включённой вм файл меняет ежесекундно свой размер (а размеры по 15 ГБ+). Это же не 15 ГБ перезаписей ежесекундно?
При постоянном размере происходит все то же самое, только вы этого не видите, вот и все.

Цитата Сообщение от Vasek2 Посмотреть сообщение
не вредно ли для него использование динамически расширяемых дисков
Если так боитесь за ресурс диска -- выньте его из компьютера и положите на полку, там он вообще не будет изнашиваться.
0
8 / 8 / 1
Регистрация: 17.11.2013
Сообщений: 467
05.01.2025, 04:28  [ТС] 3
Цитата Сообщение от quwy Посмотреть сообщение
Потому что в этом случае система не может использовать команду trim, и SSD вынужден очищать flash-память прямо перед записью данных (замедляя всю процедуру записи), а не заблаговременно (при удалении файлов или во время простоя).
Не совсем понял, как это относится к TRIM. Вроде что так есть файл vmdk, что сяк.

Цитата Сообщение от quwy Посмотреть сообщение
Это касается классического HDD.
Ок. Из-за TRIM. Ясно.

Цитата Сообщение от quwy Посмотреть сообщение
При постоянном размере происходит все то же самое, только вы этого не видите, вот и все.
Ок.

Цитата Сообщение от quwy Посмотреть сообщение
Если так боитесь за ресурс диска -- выньте его из компьютера и положите на полку, там он вообще не будет изнашиваться.
Ну дело же не только в изнашивании, а ещё и в падении производительности в случае неработоспособности TRIM

UPD
Потестировал запущенные виртуальные машины (и с динамическими, и с выделенными дисками, и на виртуальных SATA, и на виртуальных NVMe дисках). Всё это дело моментально мониторил через F5 в CrystalDiskInfo (графы Всего хост-чтений и Всего хость-записей). Да, по 15 ГБайт/сек действительно не пишутся на диск ноутбука.

UPD 2
К UPD. Но меня настораживает, что графа Всего хост-чтений практически не увеличивается, даже при копировании файла в 3 ГБ. А также настораживает то, что графа Всего хост-записей при копировании файла в 3 ГБ на тот же раздел добавляет 1 ГБ, а не 3 ГБ. Это как так?

UPD 3
Стоит ли рисковать и выделять раздел NVMe хост-системы под виртуальную машину? Скорости ещё не тестировал. Прочитал, что могут потеряться данные с такого раздела в случае чего-то тама...
0
Native x86
Эксперт Hardware
 Аватар для quwy
5681 / 3415 / 965
Регистрация: 13.02.2013
Сообщений: 10,844
05.01.2025, 05:20 4
Цитата Сообщение от Vasek2 Посмотреть сообщение
Не совсем понял, как это относится к TRIM. Вроде что так есть файл vmdk, что сяк.
Динамический диск, состоящий из нескольких файлов при удалении данных вполне может или сократить размер одного из файлов, или вообще удалить его, в обоих случаях используя команду trim для очистки флеша.

Цитата Сообщение от Vasek2 Посмотреть сообщение
Ну дело же не только в изнашивании, а ещё и в падении производительности в случае неработоспособности TRIM
Я просто толсто намекнул на то, что любые методы сокращения износа SSD являются по сути вредительскими, потому как мешают SSD делать то, ради чего он создан -- увеличивать скорость работы с данными.

Цитата Сообщение от Vasek2 Посмотреть сообщение
графа Всего хост-чтений практически не увеличивается, даже при копировании файла в 3 ГБ. А также настораживает то, что графа Всего хост-записей при копировании файла в 3 ГБ на тот же раздел добавляет 1 ГБ, а не 3 ГБ. Это как так?
Кеш хоста в RAM. Именно поэтому "взрослые" виртуалки используют собственные файловые системы, неизвестные для ОС, чтобы избежать подобных эффектов.

Цитата Сообщение от Vasek2 Посмотреть сообщение
Стоит ли рисковать и выделять раздел NVMe хост-системы под виртуальную машину?
Не понял, а в чем риск? Нормальное решение для высоконагруженой виртуалки.

Цитата Сообщение от Vasek2 Посмотреть сообщение
Прочитал, что могут потеряться данные с такого раздела в случае чего-то тама
Хрень какая-то. Потерять данные можно, если кривыми руками откусывть пространство для такого раздела. А когда все сделано -- риска никакого.
0
8 / 8 / 1
Регистрация: 17.11.2013
Сообщений: 467
05.01.2025, 05:45  [ТС] 5
Хрень какая-то. Потерять данные можно, если кривыми руками откусывть пространство для такого раздела. А когда все сделано -- риска никакого.
Насчёт хрени
Вычитал, что если хостовая ОС (или софт из неё) будет что-то писать на раздел, который выделен для ВМ, а в этот момент ВМ также что-то будет писать, то может произойти несостыковка. Я предположил, что можно удалить букву раздела в хост ОС, как бы полуразмонтировав его, чтобы хотя бы софт не сделал записей. Или я параною?

P.S. вечером сначала скорости протестирую на хардварном NVMe в ВМ, может отличий особых от вирт.NVMe и не будет.
P.S.2. а если я подцеплю раздел ссд в ВМ, то TRIM слать будет уже гостевая ОС же?
0
Native x86
Эксперт Hardware
 Аватар для quwy
5681 / 3415 / 965
Регистрация: 13.02.2013
Сообщений: 10,844
05.01.2025, 07:20 6
Цитата Сообщение от Vasek2 Посмотреть сообщение
Вычитал, что если хостовая ОС (или софт из неё) будет что-то писать на раздел, который выделен для ВМ
А схрена ли? Виртуалка этот раздел держит монопольно, стандартными средствами ОС туда влезть никак нельзя.

Цитата Сообщение от Vasek2 Посмотреть сообщение
Я предположил, что можно удалить букву раздела в хост ОС, как бы полуразмонтировав его, чтобы хотя бы софт не сделал записей. Или я параною?
Можно, но это ни на что не влияет.

Цитата Сообщение от Vasek2 Посмотреть сообщение
если я подцеплю раздел ссд в ВМ, то TRIM слать будет уже гостевая ОС же?
Неа. Гостевая система работает на правах гостя (внезапно), она вообще не имеет прямого доступа к железу. Оперицию trim делает хостовая ОС.
0
8 / 8 / 1
Регистрация: 17.11.2013
Сообщений: 467
05.01.2025, 17:08  [ТС] 7
Цитата Сообщение от quwy Посмотреть сообщение
А схрена ли? Виртуалка этот раздел держит монопольно, стандартными средствами ОС туда влезть никак нельзя.
Понял. Этот вопрос отпал

Цитата Сообщение от quwy Посмотреть сообщение
Можно, но это ни на что не влияет.
Понял, относится к первому ответу.

Цитата Сообщение от quwy Посмотреть сообщение
Неа. Гостевая система работает на правах гостя (внезапно), она вообще не имеет прямого доступа к железу. Оперицию trim делает хостовая ОС.
Т.е. даже если пробросить весь физический накопитель в ВМ, то TRIM тоже будет делать хостовая ОС?
0
Native x86
Эксперт Hardware
 Аватар для quwy
5681 / 3415 / 965
Регистрация: 13.02.2013
Сообщений: 10,844
06.01.2025, 01:31 8
Лучший ответ Сообщение было отмечено SlavaRus как решение

Решение

Цитата Сообщение от Vasek2 Посмотреть сообщение
Т.е. даже если пробросить весь физический накопитель в ВМ, то TRIM тоже будет делать хостовая ОС?
Тут, после осмысления, появляется проблема.

Накопитель в виртуалку пробрасывается как файл \\.\PhysicalDriveX, а не как железка с аппаратным интерфейсом. То есть все низкоуровневое взаимодействие с диском все равно обеспечивается хостовой ОС. Виртуальная машина видит лишь файл размером с диск, который можно вольно читать и писать, но ему не дашь команду trim.

Но в то же время только гостевая система обслуживает ФС на этом диске, и только она знает, когда и как делать trim. Но не может. Хостовая же система может делать trim, но у нее нет никакой информации об ФС и она не знает когда и как это делать.

Такая вот фигня выходит...

Добавлено через 9 минут
Погуглил эту тему. Оказывается таки существует API, через который обычные программы могут то ли непосредственно выполнять саму команду для своих открытых файлов, то ли сласть системе хинт на этот счет (и система уже сама решает, делать trim или нет).

Если этот API реально работает, и программа виртуальной машины умеет им пользоваться, то тогда гостевая система может выполнять команду, которая будет ретранслирована хосту. В этом случае важно, чтобы для гостевой системы диск тоже был типа SSD, иначе она даже пытаться не будет. Но эта настройка уже давно есть во всех виртуалках, так что не проблема.
1
8 / 8 / 1
Регистрация: 17.11.2013
Сообщений: 467
06.01.2025, 19:04  [ТС] 9
quwy, так, ясно.

А если я вручную буду запускать софтину, умеющую слать TRIM? То где логично её запустить: в хостовой или гостевой ОС? И вообще актуально ли это для NVMe накопителя? Именно NVMe PCIe
0
Native x86
Эксперт Hardware
 Аватар для quwy
5681 / 3415 / 965
Регистрация: 13.02.2013
Сообщений: 10,844
07.01.2025, 04:11 10
Актуально. В гостевой. Но только если работает описанный выше проброс команды из гостя на хост.
1
8 / 8 / 1
Регистрация: 17.11.2013
Сообщений: 467
07.01.2025, 04:40  [ТС] 11
quwy, ясно, значит способ есть. Спасибо, буду знать
0
4984 / 1012 / 144
Регистрация: 29.01.2013
Сообщений: 5,948
08.01.2025, 17:19 12
Вообще ваш тест не сильно корректен. По хорошему надо на железо ставить гипервизор и экспериментировать в нём. Так у вас не будет внезапных просадок из-за фоновой активности хостовой ОС
0
8 / 8 / 1
Регистрация: 17.11.2013
Сообщений: 467
08.01.2025, 19:08  [ТС] 13
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
из-за фоновой активности хостовой ОС
Фоновая активность ОС крайне минимальна, потому что выпилены все службы, которые в фоне что-то делают (тесты были на Nirsoft с SSD и интернет-активностью). Но да, смысл в этом есть
0
08.01.2025, 19:08
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.01.2025, 19:08
Помогаю со студенческими работами здесь

Подключение виртуальных дисков соответвующим пользователям в домене
Приветствую форумчан. Есть компьютерный класс с сервером в роли контроллера домена. Пользователи заходят под учетной записью группы (общая...

Зависает служба виртуальных дисков при подключении флешки
Мне сделать нужно было через Rufus 3.9 загрузочную флешку с портативной виндой. С 3 часа дня до 3 часа ночи он работал. Остановился на...

Размещение виртуальных дисков VirtualBox на сетевых физических дисках
доброго утра уважаемые форумчане. есть старый компьютер со 100 мюитной сетевой картой и довольно шустрыми дисками - они шустрее чем...

Сравнение скорости работы виртуальных и обычных методов
Вот такой вопрос Какой метод вызывается быстрее виртуальный или обычный? Почему? Как и в каких случаях можно обработать поля класса...

Ошибка при создании iSCSI-диска с помощью Мастера создания виртуальных дисков
Здравствуйте. Возникла такая проблема. На Windows serwere 2012r2 пытаюсь создать iscsi диск с помощью мастера создания виртуальных дисков....

Ssd nvme m2 виден в биос, отображается в windows пока в него не зайдешь. после просто пропадает из списка дисков
всем доброго времени суток. Месяца три назад установил в Acer Predator Helios 300 дополнитьельный ssd nwme m2 от Kingston на 1 тб. Поставил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как узнать какой процесс блокирует файл или каталог в Windows
bt_guru 23.01.2025
При работе с операционной системой Windows пользователи нередко сталкиваются с ситуацией, когда система отказывается выполнять определенные действия с файлами или каталогами, сообщая, что они. . .
Как в curl узнать код статуса HTTP запроса. Коды состояния HTTP
bt_guru 23.01.2025
Коды состояния HTTP играют значимую роль в обеспечении эффективного взаимодействия между клиентами и серверами. При работе с веб-сервисами важно не только отправлять запросы, но и правильно. . .
Как сортировать вывод команды ls в Linux
bt_guru 23.01.2025
В операционной системе Linux команда ls является одним из наиболее часто используемых инструментов для просмотра содержимого директорий. При работе с файловой системой пользователи регулярно. . .
Как сделать POST запрос с помощью curl
bt_guru 23.01.2025
curl - это мощный инструмент командной строки позволяет отправлять и получать данные через различные протоколы, включая HTTP, HTTPS, FTP и множество других. Особенно полезным curl становится при. . .
Прокрутка в tmux с помощью мыши и клавиатуры
bt_guru 23.01.2025
Tmux представляет собой мощный терминальный мультиплексор, который позволяет пользователям создавать и управлять несколькими терминальными сессиями внутри одного окна. Одной из важнейших функций tmux. . .
Как проверить, содержит ли массив значение в JavaScript. Поиск в массиве
bytestream 23.01.2025
Эффективный поиск значений в массивах становится критически важным навыком для разработчиков, использующих JavaScript. Процесс поиска элементов в массиве может показаться простым на первый взгляд,. . .
Как удалить тег Git в удалённом репозитории (remote)
bytestream 23.01.2025
Одним из важнейших механизмов организации версий в Git являются теги, которые позволяют помечать определенные точки в истории проекта как значимые. Теги часто используются для маркировки релизов,. . .
Чем отличаются URL, URI и URN
bytestream 23.01.2025
Системы идентификации представляют собой фундаментальный механизм, позволяющий однозначно определять местоположение и характеристики различных информационных объектов в глобальной сети. Эти системы. . .
Как центрировать div внутри другого div с помощью CSS. Управление расположением элементов в CSS
bytestream 23.01.2025
Позиционирование элементов играет ключевую роль в создании качественных и профессиональных интерфейсов. Одной из наиболее часто встречающихся задач является центрирование элементов на веб-странице,. . .
Что означают различные символы в синтаксисе PHP
bytestream 23.01.2025
PHP (Hypertext Preprocessor) представляет собой один из наиболее широко используемых языков программирования для веб-разработки, который обладает богатой и интересной историей развития. Изначально. . .
Способы клонирования объектов в JavaScript
bytestream 23.01.2025
В современной разработке на JavaScript работа с объектами является фундаментальной частью создания любого приложения. При манипуляции объектами часто возникает необходимость создавать их копии для. . .
Как проверить состояние чекбокса в jQuery. Как работать с чекбоксами
bytestream 23.01.2025
При разработке интерактивных веб-форм часто возникает необходимость программно определять состояние чекбоксов с помощью jQuery. Чекбоксы являются важными элементами пользовательского интерфейса,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru