Медленная скорость записи USB 3

Я нашел / usr / share / zsh / functions / Completion / Unix / _git, в котором есть несколько советов для таких псевдонимов и в конечном итоге определил эти функции для псевдонимов:

_git-ls () {
  # Just return the _git-ls-files autocomplete function
  _git-ls-files
}

Затем выполните прямую compdef g = git. Система автозаполнения увидит, что вы, например, запускаете g ls и используете функцию автозаполнения _git-ls.

Как найдено Здесь

7
25.05.2017, 13:08
4 ответа

Поскольку лучшего ответа нет, я просто хотел отметить, что ваши значения очень хороши для флэш-накопителя в целом и вполне соответствуют ожидаемому диапазону для вашу конкретную флешку.

Маркетинговые значения, такие как скорость записи 190 МБ / с, в целом не являются приемлемыми (они действительны не более нескольких секунд до заполнения внутреннего буфера и не отражают фактическую производительность флэш-памяти) и верны только для последовательных пишет. Как только задействуется файловая система, скорость значительно падает. Скорость записи с произвольным доступом часто составляет <1 МБ / с даже на высококлассных быстрых USB-накопителях, поэтому всего несколько произвольных операций записи (как обычно требуют файловые системы) могут снизить производительность записи.

Вы можете попробовать использовать файловую систему, более дружественную к flash-памяти, такую ​​как f2fs (рекомендуется ядро ​​4.4 или новее), которая хорошо справляется с сокращением числа случайных обрядов, чтобы посмотреть, поможет ли это.

4
27.01.2020, 20:19

Я предлагаю вам крупицу надежды. Я смотрю на SD-карты UHS-II и устройства чтения USB и наблюдаю следующее на вкладке тестирования апплета Ubuntu «Диски»:

  • Ubuntu 14.04 — ядро ​​4.4 — чтение ~ 140 МБ/с, запись ~ 50 МБ/с
  • Ubuntu 17.04 — ядро ​​4.10 — чтение ~270 МБ/с, запись ~200 МБ/с

Они используют традиционный «драйвер USB-накопителя». Что-то изменилось в ядре между этими двумя точками, что ускоряет драйвер запоминающего устройства.

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

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

3
27.01.2020, 20:19

Вам действительно нужна FAT? По моему опыту, реализация драйвера FAT для Linux, похоже, обращается к устройству с последовательностью, которая приводит к очень низкой производительности некоторых устройств. Я видел 10-кратное улучшение производительности некоторых флэш-устройств при форматировании в ext4.

Учитывая, что ссылка, которую вы предоставили в комментариях (http://www.beginninglinux.com/home/machine-related/sandisk-extreme-64-usb-3-speed-test-benchmark-review), проверяла скорость чтения и записи без разделов, возможно, ваше флэш-устройство имеет низкую производительность при доступе к драйверу Linux FAT. Если это правда,он также должен иметь плохую производительность произвольного ввода-вывода в целом.


Вы можете проверить производительность устройства с помощью fio. Перейдите в какой-либо каталог внутри устройства, которое вы хотите протестировать, и выполните следующую команду, чтобы проверить производительность со смешанной случайной скоростью чтения/записи 4k:

fio --name TEST --eta-newline=5s --filename=test.img --rw=randrw --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --iodepth=1 --direct=1 --numjobs=1 --runtime=60 --group_reporting

При этом создается тестовый файл размером 500 МБ с именем test.img, а затем начинается чтение и запись случайными блоками по 4 КБ с глубиной очереди 1. Увеличьте size, если ваше устройство имеет огромный внутренний кэш. Этот тест имеет максимальное время выполнения 60 секунд. Считайте это наихудшим сценарием с вашим устройством. Довольно быстрое флэш-устройство (Intel SSD 910 )дает следующие результаты:

...
read : io=1041.4MB, bw=17773KB/s, iops=4443, runt= 60001msec
...
write: io=1038.5MB, bw=17723KB/s, iops=4430, runt= 60001msec
...

Чтобы протестировать лучший случай, вы можете увеличить размер блока и сделать 2 параллельных процесса с iodepth=32:

fio --name TEST --eta-newline=5s --filename=test.img --rw=randrw --size=500m --io_size=10g --blocksize=512k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=2 --runtime=60 --group_reporting

Достаточно быстрое флэш-устройство (Intel SSD 910 )дает следующие результаты:

...
read : io=10892MB, bw=457088KB/s, iops=892, runt= 24401msec
...
write: io=9588.0MB, bw=402365KB/s, iops=785, runt= 24401msec
...

Конечно, если вы действительно хотите получить высокие баллы, вам следует выполнять последовательное чтение с высокой глубиной чтения. Это должно быть близко к числам, которые вы видите в спецификациях устройства (, то есть никогда в реальной жизни ):

.
fio --name TEST --eta-newline=5s --filename=test.img --rw=read --size=500m --io_size=10g --blocksize=512k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Достаточно быстрое флэш-устройство (Intel SSD 910 )дает следующие результаты:

...
read : io=10240MB, bw=1468.8MB/s, iops=2937, runt=  6972msec
...

Обратите внимание, что это не соответствует спецификации (около 2 ГБ/с ), потому что я настроил планировщик ввода-вывода с минимально возможной задержкой(deadlineПланировщик ввода-вывода с 1 >../queue/iosched/fifo_batchи50 >../queue/iosched/read_expire).

Обратите внимание на огромную разницу между наихудшим сценарием (около 17 МБ/с )и лучшим сценарием (около 1470 МБ/с ).

4
27.01.2020, 20:19

Судя по всему, Linux использует размер блока 4 КБ для дисков (Windows делает то же самое для ntfs )что приемлемо для жестких дисков с размером сектора 512 байт, но не годится для флэш-накопителей с размером стираемого блока 128 КБ. Я предполагаю, что работа таким образом приведет к тому, что 1 запись 128 КБ фактически займет 32 (128/4 )операций записи, что приведет к 1/32 производительности. Этот уровень производительности согласуется с вашей измеренной производительностью на Linux и Windows.

Пожалуйста, прочтитеhttp://linux-howto-guide.blogspot.com/2009/10/increase-usb-flash-drive-write-speed.html. Представленное решение состоит в том, чтобы вручную указать «геометрию диска» с размером блока 128 КБ. Конечно, у флешки даже нет «геометрии диска», как у механических жестких дисков, но что угодно. Это по-прежнему неидеальное решение, потому что любые файлы размером менее 128 КБ будут использовать полные 128 КБ на флэш-накопителе.

1
15.11.2020, 00:11

Теги

Похожие вопросы