Linux скорость копирования на флешку
Здраствуйте. Проблема в общем такая: Когда скидываешь\передаешь файлы на флешку(и), с начало индикатор загрузки показывает что файл передается с не вероятной скоростью (70-100МБ.СЕК.), а потом намертво зависает, хотя файлы как положено загружается. Когда из каталога в каталог перекидаешь, что либо, все ок.
Что это может быть и как это решить?
Пользуюсь линуксом совсем не давно. Стоит милт 19 версии с мате. До последнего времени всё работало отлично, проблема возникла сама по себе пару дней назад.
Dja Сообщения: 6635 Зарегистрирован: 27 авг 2016, 20:03 Решено: 28 Откуда: Voskresensk Благодарил (а): 1188 раз Поблагодарили: 699 раз Контактная информация:
Проблема с отражением времени и скорости передачи файлов на usb накопители.
Присоединяюсь. Ведь при том же копировании файлов в гуй-фм есть индикация. Т.е. до конца дошло, значит файлы должны уже были скопироваться и флешку можно по идее отмонтировать/вытащить. Однако, пишет «до отсоединения данные должны записаться. не отсоединяйте» И при этом флешка моргает. Какие данные? Если данные продолжают перетекать после закрытия статус-бара то по идее надо допиливать статус-бар, раз он так рано закрывается. вобщем магия какая-то
______________________
Немного света
[11:35:03]
[11:35:33] это куда тыкать?
[11:35:33]
[11:35:42]
[11:35:47] и?
[11:36:04]
[11:36:30] а термина откуда открыть? с флешки?
[11:36:31]
[11:36:46]
[11:36:53]
Новичок? — ознакомься с правилами
и Панель форматирования
IRC-канал
Низкая скорость при копировании на флешку
О данной проблеме уже писали тут: USB flash плохое копирование файлов на Debian 9 У меня аналогичная ситуация. При копировании файла на флешку с файловой системой fat32 индикатор быстро заполняется примерно до 80-90%, а потом надолго остаётся на этой отметке.
dd показывает скорость в 1 мегабайт в секунду.
Это нормально, на самом деле данные пишутся не сразу на флеш накопитель, а в начале записываются в кэш файловой системы. А потом из каша записываются уже на накопитель.
Какой файл ты пишешь, он один или их много?
При копировании файла на флешку с файловой системой fat32 индикатор быстро заполняется примерно до 80-90%, а потом надолго остаётся на этой отметке.
Это нормально, т.к. кэш ядра. Сократи размер кэша отложенной записи, и индикаторы копирования в программах начнут показывать реальные значения:
vm.dirty_bytes = 2097152 vm.dirty_background_bytes = 2097152
Deleted ( 24.02.20 16:12:23 MSK )
Последнее исправление: Deleted 24.02.20 16:12:42 MSK (всего исправлений: 1)
мэйби какой-то поврежденный файл тормозит
известная проблема линукса. вначале копирует нормально, а потом скорость падает до 1 мб/с
известная проблема линукса. вначале копирует нормально, а потом скорость падает до 1 мб/с
Какой файл ты пишешь, он один или их много?
anonymous, один размером 1-3 ГБ.
devzero , работает. Разрабы могли бы сделать с этим что-нибудь за столько лет.
мэйби какой-то поврежденный файл тормозит
juubex , нет не может. Разные файлы, разные флешки.
greenman , в какую директорию эту библиотеку нужно поместить?
qx255 ( 25.02.20 05:25:12 MSK )
Последнее исправление: qx255 25.02.20 05:25:56 MSK (всего исправлений: 1)
greenman , благодарю. Скомпилировал, положил в директорию, прописал переменную окружения к Nemo. Ни черта не поменялось. Так же полоска за секунду скакнула и всё застопорилось.
Вышеизложенное решение про уменьшение размера кэша сойдёт.
2020 год. Дестопный линукс…
Вообще, по моим экспериментам FUSE exFAT как-то значительно быстрее, чем ядерный FAT32 — это линукс…
Как запустить Nemo с использованием autofsync, не знаю.
(Может i-rinat подскажет)
Midnight Commander работает.
Вышеизложенное решение про уменьшение размера кэша сойдёт.
(Кстати, когда отвечаешь только мне, кастование излишне.)
Сделать так и забыть о проблемах с кешем:
# echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes # echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes # vm.dirty_expire_centisecs=1500 # vm.dirty_writeback_centisecs=500 # vm.dirtytime_expire_seconds=3000
Наверно, дешёвая, а значит медленная флешка. Поскольку афтар не догадался указать её модель, то он наверно не слишком интересуется, чем отличаются флешки, и мог купить медленную.
Медленное копирование файлов на флешку. [Решено]
Опять я со своими вопросами ))).
Подниму старую как мир тему — медленного копирования файлов на флешку.
Приспичило тут мне перекинуть несколько фильмов жене на планшет.
И выяснилось, что процесс копирования занимает ну просто жуткое количество времени.
Т.е. сперва все происходит типа моментально, а потом процесс висит на 100% минут 20 и более.
Ладно, думаю, может проблема именно при копировании на карту памяти планшета, но ни тут то было.
На обычную флешку (FAT32) процесс копирования происходит так же медленно.
Пробовал в разных файловых менеджерах, результат один. В винде такой проблемы нет (тот же порт USB, флешка, те же файлы).
Озадачился поиском, нашел кучу ссылок по этой проблеме, но все они довольно стары — 2010-2016 г.г., все в архиве да и какого то однозначного решения в этих ссылках нет.
Неужели проблема до сих пор остается не решенной.
Добавлю, что между дисками (а у меня их в ноутбуке три) копирование происходит моментально.
Спасибо за советы.
Подсказали в соседнем форуме:
открыть файл /etc/sysctl.conf
и дописать строки:
vm.dirty_bytes = 4194304
vm.dirty_background_bytes = 4194304
применить изменения:
sudo sysctl -p
Скорость копирования стала примерно как в винде (судя по отображению в окошке и времени копирования).
И, что для меня важно, окошко прогресса стало отображать прогресс копирования в течении всего времени в менеджере «из коробки — Dolphin».
У меня с этим:
vm.dirty_bytes = 4194304
vm.dirty_background_bytes = 4194304
Система вешаться начинает, на ровном месте.
Вот с таким параметром значительно лучше.
vm.dirty_bytes=15000000
Пишут некоторым отключение swap файла помогает.
Отключил, тестирую.
Осмелюсь предположить, что к скорости копирования на флешку данные заклинания не имеют никакого отношения. Просто выделяется большой буфер в озу и для пользователя создается впечатление быстрого копирования. Однако если после того, как долфин покажет что все скопировано попробовать нажать в менеджере носителей «безопасно извечь носитель» (или выполнить команду sync в терминале) — Вы получите задержку ровно такую как до применения данного твика. Потому что физически, видимо, флешка небыстрая.
Нет, не угадали. Именно работает быстрей. И не по показаниям файлового менеджера, а по времени.
Например вот тут обсуждается физический смысл этого твика. Он влияет на всю фс (не только на работу с флешками) и не факт что полезно.
а что вредного в данном действии?
Ну как минимум настораживает что все эти советы относятся к ядру пяти-семи летней давности.
В современных системах используются ключи vm.dirty_ratio, vm.dirty_background_ratio, управлющие кэшем в процентах от имеющегося озу. И это правильно, ведь в разных системах разное количество озу.
Вот так выглядит дефолтная настройка современного ядра:
sysctl -a | grep dirty
vm.dirty_background_bytes = 0
vm.dirty_background_ratio = 10
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 3000
vm.dirty_ratio = 20
vm.dirty_writeback_centisecs = 500
vm.dirtytime_expire_seconds = 43200
Например тут более подробно рассмотрено управление кэшем фс в современном ядре.
Ну и имхо в эти вещи лезть без четкого понимания что ты делаешь не стоит.
Ведь эти настройки касаются всей фс и вполне может вылезти боком при файловых операциях на диске например.
Спасибо. Убрал от греха подальше.
В 19.10, апгрейженной с 19.04, так и не смог ничего добиться. Поставил начисто 20.04 (с сохранением /home и доустановкой необходимых пакетов) — и скорость копирования на флешку стала нормальной безо всяких извращений.
что нужно сделать, чтобы копировать на флешку с нормальной скоростью?
На флешку копирует со скоростью 140-270 кб/с. Думаю причина в том, что я устанавливал систему в минимальном виде и чего-то теперь не хватает. Подскажите, пожалуйста, что нужно установить, чтоб копировать нормально.
Пробовал увеличить/уменьшить «грязные байты», запускать ehci_hcd.
Если ты не пересобирал ядро с каким-нибудь чудны́м конфигом, дело во флешке. Попробуй другую.
Две флешки пробовал на одном и том же нетбуке. В виндовс скорость нормальная, в опенсусе — нет. Ядро стандартное, обновлённое 3.11.10-desktop.
ну хоть бы для приличия написал «в dmesg чисто», я уж не говорю о выхлопе lsusb
zgrep EHCI /proc/config.gz, ну и вывод dmesg в студию
[ 390.985741] usb 1-3: new high-speed USB device number 5 using ehci-pci [ 391.105350] usb 1-3: New USB device found, idVendor=13fe, idProduct=4100 [ 391.105369] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 391.105379] usb 1-3: Product: Silicon-Power4G [ 391.105387] usb 1-3: Manufacturer: UFD 2.0 [ 391.105396] usb 1-3: SerialNumber: 12031379014E60023DFBBB17E69 [ 391.108916] usb-storage 1-3:1.0: USB Mass Storage device detected [ 391.109158] scsi2 : usb-storage 1-3:1.0 [ 392.192950] scsi 2:0:0:0: Direct-Access UFD 2.0 Silicon-Power4G PMAP PQ: 0 ANSI: 4 [ 392.195958] sd 2:0:0:0: Attached scsi generic sg1 type 0 [ 392.871144] sd 2:0:0:0: [sdb] 7579008 512-byte logical blocks: (3.88 GB/3.61 GiB) [ 392.872288] sd 2:0:0:0: [sdb] Write Protect is off [ 392.872310] sd 2:0:0:0: [sdb] Mode Sense: 23 00 00 00 [ 392.873730] sd 2:0:0:0: [sdb] No Caching mode page found [ 392.873749] sd 2:0:0:0: [sdb] Assuming drive cache: write through [ 392.879852] sd 2:0:0:0: [sdb] No Caching mode page found [ 392.879869] sd 2:0:0:0: [sdb] Assuming drive cache: write through [ 392.900345] sdb: sdb1 [ 392.908994] sd 2:0:0:0: [sdb] No Caching mode page found [ 392.909013] sd 2:0:0:0: [sdb] Assuming drive cache: write through [ 392.909026] sd 2:0:0:0: [sdb] Attached SCSI removable disk
xxx@linux-kpzj:~> zgrep EHCI /proc/config.gz CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_PCI=y CONFIG_USB_EHCI_HCD_PLATFORM=m
xxx@linux-kpzj:~> lsusb Bus 001 Device 005: ID 13fe:4100 Kingston Technology Company Inc. Bus 002 Device 002: ID 04f2:b209 Chicony Electronics Co., Ltd Bus 003 Device 002: ID 09da:054f A4 Tech Co., Ltd Bus 004 Device 003: ID 0489:e03c Foxconn / Hon Hai Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Дело во «флешке», точнее в принципе работы Flash памяти и файловой системы.
Довольно большое время занимет процедура открытия и закрытия файла, поэтому если на флеш накопитель записывается большое количеством файлов небольшого размера, а не несколько файлов того же объёма, но большого размера, то время записи данных на накопитель в большей степени будет пропорционально числу этих маленьнких файлов, а в меньшей суммарному размеру этих файлов.
Если вам нужно записать довольно много файлов небольшого размера, то лучше зажмите их в архив и запишите архив целиком.
Если вы ответите, что дескать в Windows всё пишется быстро, то я вам отвечу, что в Windows данные пишутся не сразу на накопитель, а в начале попадают в кэш файловой системы и затем постепенно этот кэш сбрасывается на накопитель, даже когда скроется индикатор копирования файлов и вы посчитаете, что файлы уже записаны, посмотрите на индикатор (светодиод) активности обращения на Flash накопителе и вы увидите, что он мигает, это означает, что на накопитель идёт запись, т.е. сбрасывается кэш файловой системы.
В Linux, если файловая система на накопителе монтировалась посредством udisks, в современных DE, KDE, Gnome, Xfce, это так, то в опциях монтирования присутствет опция «sync», которая говорит, что при записи на накопитель данные должны сразу же синхронизироваться с накопителем, без использования кэша файловой системы.
Вот и получается, что запись идёт медленно.
Если жесткий диск и флешка отформатированы в разные файловые системы, то это невозможно.
Допустим, у меня копирование одного файла с NTFS на NTFS занимает 1 секунду (грубо), а при копировании с Ext4 на NTFS — 30 секунд
А вот нефиг флешку покупать дешевую. И нефиг монтировать ее с опцией sync!
Никаких USB-устройств к компьютеру больше не подключено?
На флешку копирует со скоростью 140-270 кб/с.
А теперь отформатируй флэшке в btrfs. И расскажи какая скорость будет.