Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Windows Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7   вперед  Ctrl      все
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
mayton
Member

Откуда: loopback
Сообщений: 43284
С дисками еще посложнее. У них - нелинейных эффектов больше. Механика головок. И различные умные кеши.
Но самое главное - класс устройства. Старый IDE, который стоит на бабушкиных компах. SATA1/2/3.
Размер блинчика. 2.5 или 3.5. И скорость кручения. 5 тыщ. 7 тыщ. 12 тыщ (для серверных).
25 мар 19, 11:05    [21842515]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Flying-home
Member

Откуда: nas.vrostove.net
Сообщений: 14935
mayton
С дисками еще посложнее. У них - нелинейных эффектов больше. Механика головок. И различные умные кеши.
Но самое главное - класс устройства. Старый IDE, который стоит на бабушкиных компах. SATA1/2/3.
Размер блинчика. 2.5 или 3.5. И скорость кручения. 5 тыщ. 7 тыщ. 12 тыщ (для серверных).

Да я вот начинаю вникать и офигеваю.
Вот чтение с достаточно распространенного WD Black, 500 GB
Смешанные файлы. Фотки, Музыка, пара видео.
Прирост скорости на маленьких размерах блока - за счет маленьких файлов.
На больших - за счет больших файлов.

Предположу, что винчестер при поступлении на него большой очереди запросов на чтение маленькими блоками, оптимизирует порядок их выполнения и выигрывает на чтении фрагментированных файлов.

А с большими файлами есть еще один момент. У меня они, скорее всего фрагментированы минимально. Поэтому так заметен прирост скорости при чтении большими блоками. Где бы достать много больших фрагментированных файлов для опытов?

К сообщению приложен файл. Размер - 110Kb
25 мар 19, 13:49    [21842752]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
mayton
Member

Откуда: loopback
Сообщений: 43284
Flying-home
Предположу, что винчестер при поступлении на него большой очереди запросов на чтение маленькими блоками, оптимизирует порядок их выполнения и выигрывает на чтении фрагментированных файлов.

Вот может это даст какое-то прояснение https://en.wikipedia.org/wiki/Native_Command_Queuing
Я тоже почитаю.
25 мар 19, 13:52    [21842758]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Flying-home
Member

Откуда: nas.vrostove.net
Сообщений: 14935
Не, соврал. Это была старая 320-ка.
500-ка вот

К сообщению приложен файл. Размер - 87Kb
25 мар 19, 14:02    [21842774]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Flying-home
Member

Откуда: nas.vrostove.net
Сообщений: 14935
mayton
Flying-home
Предположу, что винчестер при поступлении на него большой очереди запросов на чтение маленькими блоками, оптимизирует порядок их выполнения и выигрывает на чтении фрагментированных файлов.

Вот может это даст какое-то прояснение https://en.wikipedia.org/wiki/Native_Command_Queuing
Я тоже почитаю.

Очень похоже на правду, но.
Вот две ситуации:
1. Я отправляю на винт серию команд на чтение по 64 КБ
2. Я отправляю на винт одну команду на чтение 32 МБ

Почему мы должны думать, что во втором случае NCQ не работает?
25 мар 19, 17:28    [21843005]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Flying-home
Member

Откуда: nas.vrostove.net
Сообщений: 14935
Flying-home
mayton
пропущено...

Вот может это даст какое-то прояснение https://en.wikipedia.org/wiki/Native_Command_Queuing
Я тоже почитаю.

Очень похоже на правду, но.
Вот две ситуации:
1. Я отправляю на винт серию команд на чтение по 64 КБ
2. Я отправляю на винт одну команду на чтение 32 МБ

Почему мы должны думать, что во втором случае NCQ не работает?

В смысле, кучу команд он оптимизирует (как следует из названия технологии), а одну большую команду оптимизировать не будет?
25 мар 19, 17:37    [21843017]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
mayton
Member

Откуда: loopback
Сообщений: 43284
Flying-home
Flying-home
пропущено...

Очень похоже на правду, но.
Вот две ситуации:
1. Я отправляю на винт серию команд на чтение по 64 КБ
2. Я отправляю на винт одну команду на чтение 32 МБ

Почему мы должны думать, что во втором случае NCQ не работает?

В смысле, кучу команд он оптимизирует (как следует из названия технологии), а одну большую команду оптимизировать не будет?

Смотри. В твоём кейсе (копирование большого толстого файла (БТФ)) я считаю что NCQ - бесполезен.
Его основное назначение - соптимизировать хаос команд которые летят на диск когда он под современной
операционкой с кучей фоновых задач бомбит бедный диск операциями (типичная ситуация - прогрев Windows-7
или старт антивируса или индексатора файлов). В этом случае без NCQ блок головок (БГ) будет двигатся хаотично
обслуживая сиюсекундные хотелки всех-всех запущенных процессов. Типичная картинка. Мощный проц. Много
памяти а ОС стартует 15 минут. В случае с NCQ (теоретически это все SATA-шники) движения БГ от рандомного
шума должны подойти к "лесенке вверх" и лесенке вниз (это идеал). В реальности скорее всего NCQ просто
сортирует команды в монотонном порядке cylinders и исполняет их следя за консистенстностью. Ну чтоб
запись не сбила чтение.

Тоесть копированию БТФ - пофиг на NCQ, но если параллельно с этим копированием периодически прилетают
шумящие команды от других процессов то NCQ полезен.
25 мар 19, 19:45    [21843113]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Flying-home
Member

Откуда: nas.vrostove.net
Сообщений: 14935
mayton
Flying-home
пропущено...

В смысле, кучу команд он оптимизирует (как следует из названия технологии), а одну большую команду оптимизировать не будет?

Смотри. В твоём кейсе (копирование большого толстого файла (БТФ)) я считаю что NCQ - бесполезен.
Его основное назначение - соптимизировать хаос команд которые летят на диск когда он под современной
операционкой с кучей фоновых задач бомбит бедный диск операциями (типичная ситуация - прогрев Windows-7
или старт антивируса или индексатора файлов). В этом случае без NCQ блок головок (БГ) будет двигатся хаотично
обслуживая сиюсекундные хотелки всех-всех запущенных процессов. Типичная картинка. Мощный проц. Много
памяти а ОС стартует 15 минут. В случае с NCQ (теоретически это все SATA-шники) движения БГ от рандомного
шума должны подойти к "лесенке вверх" и лесенке вниз (это идеал). В реальности скорее всего NCQ просто
сортирует команды в монотонном порядке cylinders и исполняет их следя за консистенстностью. Ну чтоб
запись не сбила чтение.

Тоесть копированию БТФ - пофиг на NCQ, но если параллельно с этим копированием периодически прилетают
шумящие команды от других процессов то NCQ полезен.

Получается, надо разбить файлы на две группы, например, меньше 8 МБ и больше. Первую группу читать блоками по 64 КБ в надежде на NCQ, вторую - большими блоками в надежде на их нефрагментированность.
25 мар 19, 20:10    [21843135]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Flying-home
Member

Откуда: nas.vrostove.net
Сообщений: 14935
Еще из моих наблюдений на рэйдах этот NCQ то-ли не работает, то-ли работает как-то не так. С маленькими файлами прироста скорости с уменьшением блока нет. Но там вообще фиг разберешься, что оптимизирует винт, а что - рэйд-контроллер.
25 мар 19, 20:14    [21843141]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Flying-home
Member

Откуда: nas.vrostove.net
Сообщений: 14935
И по сабжу.
Сегодня держал в руках флэшку USB 2.0
На FILE_FLAG_NO_BUFFERING она вообще не реагирует, имеет на борту буфер в 8 МБ. При записи на нее больших файлов она просто принимала в буфер порцию, потом записывала его, как сама считала нужным. И так далее.
25 мар 19, 20:20    [21843145]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Flying-home
Member

Откуда: nas.vrostove.net
Сообщений: 14935
https://habr.com/ru/post/95384/
В далеком 2010 году человек пытался собирать бенчмарки по флэшкам. Но видно, что-то пошло не так.
25 мар 19, 20:30    [21843152]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Dima T
Member

Откуда:
Сообщений: 14160
Flying-home
И по сабжу.
Сегодня держал в руках флэшку USB 2.0

Уже год не держал флэшку в руках. Отмирают они как дисководы. Сейчас проще через облака всякие перегнать данные, чем использовать флэшку.

Мне кажется ты занимаешься тюнингом паровоза в эпоху электромобилей.
25 мар 19, 20:36    [21843159]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
mayton
Member

Откуда: loopback
Сообщений: 43284
Flying-home
mayton
пропущено...

Смотри. В твоём кейсе (копирование большого толстого файла (БТФ)) я считаю что NCQ - бесполезен.
Его основное назначение - соптимизировать хаос команд которые летят на диск когда он под современной
операционкой с кучей фоновых задач бомбит бедный диск операциями (типичная ситуация - прогрев Windows-7
или старт антивируса или индексатора файлов). В этом случае без NCQ блок головок (БГ) будет двигатся хаотично
обслуживая сиюсекундные хотелки всех-всех запущенных процессов. Типичная картинка. Мощный проц. Много
памяти а ОС стартует 15 минут. В случае с NCQ (теоретически это все SATA-шники) движения БГ от рандомного
шума должны подойти к "лесенке вверх" и лесенке вниз (это идеал). В реальности скорее всего NCQ просто
сортирует команды в монотонном порядке cylinders и исполняет их следя за консистенстностью. Ну чтоб
запись не сбила чтение.

Тоесть копированию БТФ - пофиг на NCQ, но если параллельно с этим копированием периодически прилетают
шумящие команды от других процессов то NCQ полезен.

Получается, надо разбить файлы на две группы, например, меньше 8 МБ и больше. Первую группу читать блоками по 64 КБ в надежде на NCQ, вторую - большими блоками в надежде на их нефрагментированность.

Делить файлы на 2 категории - мысль здравая. Плюсую.

По поводу NCQ. Надо курить документацию по дискам и понять какой смысл вкладывается в NCQ-command. Если
это 1 сектор то это одно. Если это цепочка секторов - тогда надо думать по другому.
25 мар 19, 20:38    [21843162]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
mayton
Member

Откуда: loopback
Сообщений: 43284
Flying-home
Еще из моих наблюдений на рэйдах этот NCQ то-ли не работает, то-ли работает как-то не так. С маленькими файлами прироста скорости с уменьшением блока нет. Но там вообще фиг разберешься, что оптимизирует винт, а что - рэйд-контроллер.

Я-ж говорю. Сложное это дело. Если в стеке у нас еще и стоит к примеру RAID-контроллер в зеркале (это кажется режим десятка)
тогда у нас на чтение контроллер будет разбрасывать транзакции на 2 диска равномерно по их готовности.
Это вообще путает все карты! Мы уже тюним 3 устройства в стеке!
25 мар 19, 20:41    [21843166]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
mayton
Member

Откуда: loopback
Сообщений: 43284
Flying-home
И по сабжу.
Сегодня держал в руках флэшку USB 2.0
На FILE_FLAG_NO_BUFFERING она вообще не реагирует, имеет на борту буфер в 8 МБ. При записи на нее больших файлов она просто принимала в буфер порцию, потом записывала его, как сама считала нужным. И так далее.

Ты обращал внимание что когда втыкаешь новую флешку - то операционка ставит
для нее драйвер? Причем для каждого вендора флешки может быть новый драйвер.
Рискну предположить что флешка - это не просто матрица памяти. Ну... наше понимание
в этом вопросе будет поверхностным если мы флешку будем опускать на такой уровень.
25 мар 19, 20:44    [21843170]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
mayton
Member

Откуда: loopback
Сообщений: 43284
Dima T
Flying-home
И по сабжу.
Сегодня держал в руках флэшку USB 2.0

Уже год не держал флэшку в руках. Отмирают они как дисководы. Сейчас проще через облака всякие перегнать данные, чем использовать флэшку.

Мне кажется ты занимаешься тюнингом паровоза в эпоху электромобилей.

Через неделю я буду заниматься тюнингом своего нового AMD. В основном
в части дележа дисков. Куда чё положить. Короче дисковый пасьянс.
25 мар 19, 20:46    [21843172]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Dima T
Member

Откуда:
Сообщений: 14160
mayton
Через неделю я буду заниматься тюнингом своего нового AMD. В основном
в части дележа дисков. Куда чё положить. Короче дисковый пасьянс.

SSD там будет?
25 мар 19, 20:56    [21843184]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
mayton
Member

Откуда: loopback
Сообщений: 43284
Пока нет. Куплю позже. Щас у меня идея фикс - собрать программное зеркало для хранения
домашних семейных фото-архивов. Почему зеркало? Да достало копии делать. Всё равно
забываешь. И что с..ка характерно. Все винты разного размера. Двушка. единичка. и 0.5 терабайт.
25 мар 19, 21:00    [21843186]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Flying-home
Member

Откуда: nas.vrostove.net
Сообщений: 14935
mayton
Flying-home
Еще из моих наблюдений на рэйдах этот NCQ то-ли не работает, то-ли работает как-то не так. С маленькими файлами прироста скорости с уменьшением блока нет. Но там вообще фиг разберешься, что оптимизирует винт, а что - рэйд-контроллер.

Я-ж говорю. Сложное это дело. Если в стеке у нас еще и стоит к примеру RAID-контроллер в зеркале (это кажется режим десятка)
тогда у нас на чтение контроллер будет разбрасывать транзакции на 2 диска равномерно по их готовности.
Это вообще путает все карты! Мы уже тюним 3 устройства в стеке!

Да, кстати, надо будет поплотнее потестить это "разбрасывание". Кажется, при безбуферных операциях его нет.
25 мар 19, 21:34    [21843197]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7099
mayton
Пока нет. Куплю позже. Щас у меня идея фикс - собрать программное зеркало для хранения
домашних семейных фото-архивов. Почему зеркало? Да достало копии делать. Всё равно
забываешь. И что с..ка характерно. Все винты разного размера. Двушка. единичка. и 0.5 терабайт.


Ну вот, приехали :) Бекап и зеркало это - разные вещи. Оно не защитит ни от усер эррор, ни от шифровальщиков.
26 мар 19, 03:43    [21843333]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Dima T
Member

Откуда:
Сообщений: 14160
mayton
Пока нет. Куплю позже. Щас у меня идея фикс - собрать программное зеркало для хранения
домашних семейных фото-архивов. Почему зеркало? Да достало копии делать. Всё равно
забываешь. И что с..ка характерно. Все винты разного размера. Двушка. единичка. и 0.5 терабайт.

SSD недорогие нынче, достаточно 240 Гб под системный диск. Комп летать будет.
Для бэкапа лучше роутер с HDD и туда сливать. А чтобы не забывать можно по заданию запускать батник, а в нем xcopy или robocopy только новых файлов.
26 мар 19, 07:27    [21843372]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
Flying-home
Member

Откуда: nas.vrostove.net
Сообщений: 14935
Проснулся и понял. Понял, что ничего не понятно.

Я не использую технологию IOCP, я читаю последовательно. При таком подходе NCQ не должно давать этого самого "эффекта маленьких файлов", при котором мелкие файлы читаются быстрее при маленьких размерах блока. Зато если задействовать IOCP... Интересно будет посмотреть на результаты.

В общем, вопрос остается открытым.
Сформулирую его еще раз:
При последовательном чтении больших файлов на безбуферных операциях наблюдается стабильный прирост скорости чтения с увеличением размера блока. Вплоть до 16 и 32 МБ.
При последовательном чтении сравнительно маленьких файлов (размером до 8 МБ) на SATA винчестерах наблюдается обратный эффект: скорость чтения растет с уменьшением блока вплоть до 132 КБ.
26 мар 19, 08:12    [21843385]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
tunknown
Member

Откуда:
Сообщений: 717
Flying-home
В общем, вопрос остается открытым.
Попробуйте uni_ata. В нём есть какое-то логгирование. Вдруг, поможет.

Вопрос с количеством потоков- интересный. Неясно, как его решить в общем случае. На RAID или некоторых SSD это может ускорить, но определить конфигурацию в общем смысле, видимо- непросто.
26 мар 19, 09:28    [21843417]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
mayton
Member

Откуда: loopback
Сообщений: 43284
Relic Hunter
mayton
Пока нет. Куплю позже. Щас у меня идея фикс - собрать программное зеркало для хранения
домашних семейных фото-архивов. Почему зеркало? Да достало копии делать. Всё равно
забываешь. И что с..ка характерно. Все винты разного размера. Двушка. единичка. и 0.5 терабайт.


Ну вот, приехали :) Бекап и зеркало это - разные вещи. Оно не защитит ни от усер эррор, ни от шифровальщиков.

У меня узер один. Это я. И шифровать не буду. Кому нужны мои домашние фотки?
26 мар 19, 11:07    [21843514]     Ответить | Цитировать Сообщить модератору
 Re: Оптимальный размер блока при записи файла на флэшку  [new]
mayton
Member

Откуда: loopback
Сообщений: 43284
Dima T
mayton
Пока нет. Куплю позже. Щас у меня идея фикс - собрать программное зеркало для хранения
домашних семейных фото-архивов. Почему зеркало? Да достало копии делать. Всё равно
забываешь. И что с..ка характерно. Все винты разного размера. Двушка. единичка. и 0.5 терабайт.

SSD недорогие нынче, достаточно 240 Гб под системный диск. Комп летать будет.
Для бэкапа лучше роутер с HDD и туда сливать. А чтобы не забывать можно по заданию запускать батник, а в нем xcopy или robocopy только новых файлов.

xcopy только новых файлов это не метод. Это я уже проходил. Потом после восстановления
жена тебе скажет - "я же тебя просила удалить эту фотку где я - толстая/больная/или в
некрасивом платье"

Удаление и переименовывание файлов должно накатываться на бэкап именно так-же как
и транзакции в БД.
26 мар 19, 11:10    [21843519]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7   вперед  Ctrl      все
Все форумы / Windows Ответить