@Asparagales

Почему скорость записи на флешку такая низкая?

У меня есть флешка USB 2.0. Отформатировал ее в ext4. Пытался записать файлы общим объемом несколько гигабайт. Пробовал записывать как множество небольших файлов, размером от нескольких мегабайт до нескольких десятков мегабайт, так и большие, в несколько гигабайт. Всегда картина одинаковая: вначале скорость копирования очень высокая, но после копирования примерно половины гигабайта скорость резко падает. Я знаю, что это USB 2.0, я знаю, что первоначальная скорость копирования - это копирование куда-то в буфер, но скорость около 500 KiB/s мне кажется это ненормально. Кроме того, часто копирование вообще приостанавливается надолго, может быть навсегда, - у меня не хватало терпения и я выдергивал флешку после 10 минут ожидания. Даже если копирование завершилось удачно, флешку еще долго после этого не удается отмонтировать.

Для сравнения, гораздо более древняя флешка, форматированная в mbr/fat32 записывает те же файлы в разы быстрее. Я думал, что мне попалась бракованая и купил другую, с USB 3.0, но с ней точно такая же картина: скорость записи на линуксовые файловые системы (ext4, xfs) крайне низкая и часто копирование вообще останавливается, но скорость записи на раздел с ntfs заметно выше, хотя тоже сильно скачет.

У вас бывало такое, что скорость записи на флешку на линуксовые файловые системы очень назкая? Имеет ли значение для скорости таблица разделов - ms-dos или gpt? Какими программами вы форматируете?
  • Вопрос задан
  • 16390 просмотров
Пригласить эксперта
Ответы на вопрос 5
sotvm
@sotvm
Умный поймёт, а дураку и так всё равно.
100% говно_флешка
про скорость в начале/конце уже ответили
я ставлю размер блока 4kb
Ответ написан
Комментировать
@MechanID
Админ хостинг провайдера
Вы правы в началае скорость высокая потому что все падает в буфер которы находится в оперативной памяти, потом скорость падает, скорость записи на флешку очень зависит от размера блока, вы можете с помощью утилиты dd произвести тесты записи на вашу флешку:
dd if=/dev/zero of=/dev/sdХ bs=$BLOCK_SIZE count=100000 conv=fsync
в переменную BLOCK_SIZE подставляйте 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864
после каждого теста сбрасывайте куши командой echo 3 > /proc/sys/vm/drop_caches

получив размер блока с хорошей скоростью записи можете отформатирывать флешку в ext4 указав этот размер блока например mkfs.ext4 -b 4096 /dev/sdb
Ответ написан
@Asparagales Автор вопроса
В общем, если это кому-то еще интересно, я создал таблицу разделов ms-dos и собственно раздел с помощью fdisk. Затем с помощью dd заполнил раздел нулями и после этого создал файловые системы ntfs и ext4. Вроде бы это немного помогло, хотя точных замеров до и после я не проводил.
Ответ написан
Комментировать
PriestFromRL
@PriestFromRL
Все зависит от флешки и от скорости записи. Если у вас скорость записи, допустим, в среднем 10Мб\с, а именно на эту флешку, допустим 1Мб\с - то проблема в флешке. А от ее формата мало что зависит.
Ответ написан
Комментировать
@rodocop
гик, гном-волшебник из компьютерного подземелья
Хм... "Более древняя флешка" скорее всего просто сделана на MLC, а то и SLC-памяти, которая чисто технологически быстрее (а заодно, долговечнее и надежнее) дешевой и емкой современной TLC.

Вот и вся любовь...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект