Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2020, 18:54   #1
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию Скорость чтения RAM диска

Здравствуйте.

Есть вот такая штука, здесь описано что такой диск располагается непосредственно в оперативной памяти.
Я создал себе гигабайт для тестов и поиграться. При монтировании в Daemoon Tools как RAM-диска - я вижу что шкала заполненности ОЗУ увеличивается на гигабайт.

У меня DDR4, скорость чтения которой ни много ни мало - 20 гигабайт в секунду. За пруфами не ходил, просто посмотрел в данные бенчмарка AIDA64 - 19660 МБ/с. Задержка 70.5 наносекунд.
Скорость кешей проца удивили, там счёт скоростей идёт уже на терабайты в секунду, и задержки 1-15 ns, но не об этом.

Так вот, я делал разные манипуляции и конфигурации этого RAM-диска, и максимум чего я добился - 3000 МБ/с, это Buffered Read, достаточно стабильная скорость, с редкими просадками.
Линейное максимум 2000 и скачет, рандомное максимум 430 и тоже скачет.
Average Read Access стабильно 0.02 мс, то есть 20 000 наносекунд - почти в 300 раз хуже показателя RAM. Эту цифру я ожидал увидеть в скорости хотя бы линейного чтения, но точно не в задержке.
Все тесты проводились в AIDA64.

Это ну очень далеко от оперативы, не сопоставимо.
Вопрос: почему так ? Ведь указанный объём (1 ГБ) честно занят в ОЗУ

UPD 1: поработал с файлами на 5-гиговом RAM-диске, и обнаружил забавные вещи.
1. При работе с большими архивами (упаковка-распаковка на месте хранения) физическая оперативная память заполняется сверх того что занимает сам RAM-диск.
2. Со временем этот сверх-объём освобождается - это политика "Оптимальная производительность (по умолчанию)" в диспетчере устройств.
3. Если переключить на "Быстрое удаление" - скорость работы становится сильно хуже чем на HDD, в районе 10-20 МБ/с.
4. При работе в политике "Оптимальная производительность (по умолчанию)" - скорость активной работы* 1-2 ГБ/с, но пока сверх-объём памяти не освободится (п. 2) - дальнейшая работа с этим носителем невозможна (проводник глючит).

* Под скоростью активной работы я подразумеваю скорость при записи, которую показывает архиватор 7zip при разархивировании.
Исходя из п. 3 получается, что либо это вовсе не RAM, либо проблема где-то в другом месте, ибо скорость зависит от политики работы с накопителем и по факту - дополнительным кешированием данных всё в той же оперативе.

UPD 2: все вышеперечисленные манипуляции проводились с привязанным VHD файлом, который хранится на вполне себе физическом HDD/SDD. Тип физического хранителя не особо важен, это видно по тестам.
Без привязки физического хранилища - показатели скоростей чтения/записи/доступа - такие же самые, при записи так же занимается сверх-объём, но освобождается этот объём гораздо быстрее, и проводник не глючит (с носителем возможна нормальная работа).

1. Синхронизация с физическим накопителем сводит на нет все преимущества RAM-диска, и даже доставляет неудобств.
2. При перезапуске системы всё что было сохранено, в том числе файловая система - сносится в ноль, что вполне логично без синхронизации, и тогда эта конструкция пригодна для узкого набора задач, либо нужен ноутбук/ИБП (с живой батареей) + возможность синхронизации "по кнопке"/по расписанию.

3. Вопрос скорости остаётся открытым, почему так медленно 3 ГБ/с, по сравнению с ОЗУ 20 ГБ/с ?
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 18.07.2020 в 23:06.
OmegaBerkut вне форума Ответить с цитированием
Старый 18.07.2020, 22:41   #2
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Эту цифру я ожидал увидеть в скорости хотя бы линейного чтения, но точно не в задержке.
Вызов ядра ОС приводит к сохранению контекста. На это тратиться от 0٫5 до 10 мкс.
Так что такая задержка вполне ожидаемая.

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Buffered Read,
Buffered бывает только Write. Во-вторых buffer переводиться на русский как элемент задержки.
Попробуйте небуферезированный должно увеличить скорость чтения.

У вас файл открыт в бинарном или текстовом режиме?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 18.07.2020, 22:55   #3
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Попробуйте небуферезированный должно увеличить скорость чтения
Как раз буферизированное чтение (Buffered Read, скриншот ниже) - самая высокая скорость.

Цитата:
Сообщение от Pavia Посмотреть сообщение
Buffered бывает только Write
Ну, не знаю, приложил скрин, что это тогда ?
Изображения
Тип файла: png image_2020-07-18_225447.png (75.9 Кб, 0 просмотров)
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 18.07.2020, 22:56   #4
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
У вас файл открыт в бинарном или текстовом режиме?
Не понял вопроса
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 18.07.2020, 23:01   #5
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
(Buffered Read, скриншот ниже) - самая высокая скорость
Вот здесь сводка результатов теста. Сейчас скорость просела до 2600 (не знаю почему), но всё равно самая высокая. И это без привязки к VHD.
Изображения
Тип файла: png image_2020-07-18_230022.png (50.5 Кб, 0 просмотров)
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 19.07.2020, 08:43   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Попробуйте блоки в 64МБ (супротив нынешних 64К) и сравните результаты.
waleri вне форума Ответить с цитированием
Старый 19.07.2020, 11:35   #7
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

64 КБ/0.0002=3.2 ГБ/с
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 19.07.2020, 21:00   #8
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Попробуйте блоки в 64МБ (супротив нынешних 64К) и сравните результаты.
AIDA64 не даёт возможности выбрать размер блока, а Victoria даёт максимум 64 килобайта. К тому же Victoria некорректно отображает результаты, и максимум что я там видел - 1500 МБ/с.

Цитата:
Сообщение от Pavia Посмотреть сообщение
64 КБ/0.0002=3.2 ГБ/с
То есть всё упирается в задержку я правильно понял ...
Есть ли инструменты создания RAM-дисков, которые работают без этого
Цитата:
Сообщение от Pavia Посмотреть сообщение
Вызов ядра ОС приводит к сохранению контекста. На это тратиться от 0٫5 до 10 мкс
?
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 19.07.2020, 22:31   #9
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
AIDA64 не даёт возможности выбрать размер блока
Ну так воспользуйтесь другим инструментом.
Таких программ вагон и тележка.


Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Есть ли инструменты создания RAM-дисков, которые работают без этого
Конечно нет. Если это диск, то это диск и соответственно дисковый драйвер и все издержки с ним связанные.

Я не зря спрашивал про большие блоки. Если скорость сильно вырастит то значит задержки в драйвере. Если нет, то значит упираемся в скорость памяти.
waleri вне форума Ответить с цитированием
Старый 20.07.2020, 02:50   #10
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
64 КБ/0.0002=3.2 ГБ/с
Исходя из этой математики, теоретически максимальный размер блока при наибольшем быстродействии составит 400 кб, ближайший доступный при создании ФС exFAT 256 или 512 кб.
256/0.02=12500
512/0.02=25600

Но это теория.
Практика куда менее быстрая.
Максимум чего я добился - 3750 чтение и 3100 запись.

Цитата:
Сообщение от waleri Посмотреть сообщение
Если скорость сильно вырастит то значит задержки в драйвере. Если нет, то значит упираемся в скорость памяти
Скорость выросла, но не сильно, и при той же задержке доступа скорость всё равно далека от реальной ОЗУ, которая почти 20000.

На скриншоте запечатлил показатели чуть ниже, 3620 и 2975. exFAT 128 кб
Говорят что такие скоростя уже достижимы на NVMe (не реклама - пруф, ещё).
Изображения
Тип файла: png image_2020-07-20_025025.png (35.4 Кб, 20 просмотров)
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 20.07.2020 в 12:47.
OmegaBerkut вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание тестов на скорость чтения и скорость записи Roman1867 Помощь студентам 30 17.05.2017 13:56
Ошибка чтения диска kozak_mefody Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 10.11.2015 17:48
какой программой проверить скорость чтения HDD? contin Компьютерное железо 2 18.05.2012 15:46
Загрузка с внешнего USB харддиска - скорость чтения Alex Cones Компьютерное железо 12 28.12.2010 11:25
Низкая скорость чтения дисков в Win 7 Ivan_32 Компьютерное железо 1 08.09.2010 14:20