Я купил флеш-накопитель на 32 ГБ (SanDisk Ultra Fit 3.0). На упаковке написано: скорость до 150 МБ / с. В моей системе Ubuntu Linux скорость чтения исходного устройства хранения (с sudo dd if=/dev/sdb of=/dev/null bs=16M) составляет всего 51 МБ / с. У меня нет свободного доступа к другим операционным системам, чтобы попробовать.

Что не так и как мне это ускорить?

Обратите внимание, что флеш-накопитель подключен к порту USB 3.0, который считывал внешний жесткий диск со скоростью 240 МБ / с за несколько минут до того, как я попробовал его с помощью флеш-накопителя.

1 ответ1

1

Я думаю, что вы столкнулись с разницей между теоретической и практической скоростью. Теоретическая скорость - это скорость операции / устройства / и т.д. В лучшем случае. Например. ошибок не бывает, все выполняется в соответствии с планом, внешние факторы не учитываются и т. д. Практическая скорость - это скорость, когда все это учитывается.

Простой способ определить это - выражение "до" перед скоростью. Конечно, компании собираются рекламировать себя так, как они кажутся лучшими, а это непрактичная скорость.

РЕДАКТИРОВАТЬ: Флэш-накопители практически произвольного доступа (это означает, что любые данные могут быть доступны в постоянное время, независимо от того, где они находятся), но разделены на блоки, которые являются последовательными (это означает, что для чтения или записи на него, вы Нужно читать все, что идет до этого). Когда данные записываются или читаются из блока, весь блок должен считываться / записываться (когда вы читаете, ненужные части выбрасываются где-то в середине операции, и когда вы пишете, то же самое происходит переписано на неизмененные части, которые были там раньше). Таким образом, в случае pendrive и чтения лучший сценарий - это когда все запрашиваемые данные точно совпадают с блоком. В реальных ситуациях это случается редко, если только размер блока не учитывается при запросе или записи данных (пользователь не может это контролировать).

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

TL; DR: лучший вариант развития событий практически недостижим. Там могут быть определенные типы операций, которые приближаются к этому, хотя (например, жесткие диски работают намного лучше на меньшем количестве больших файлов, чем на многих маленьких).

EDIT2: для флэш-накопителей, я не знаю, какие типы операций выполняют лучше всего.

РЕДАКТИРОВАТЬ 3: В случае флэш-накопителя, размер считываемых данных не имеет значения при тестировании скорости. Если используемая вами ОС читает, например, 128 байтов за раз, а размер блока устройства составляет 256 байтов, каждые 256 байтов требуют двух операций, что делает скорость вдвое меньше, чем могла бы быть. Однако тот факт, что pendrive рассматриваются как блочные устройства, указывает на то, что Linux может определять размер блока, что делает эту причину маловероятной. Извините, я не могу думать ни о какой другой причине, которая замедляет это, но что бы это ни было, я не думаю, что это решаемо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .