Поддержка > Руководства и инструкции

Тормоза при копировании на флешку

(1/1)

ArturS:
На моём не новом, но вобщем то не слабом компьютере (8 Gb RAM, i3.30GHz) проявилась такая неприятность. При копировании больших файлов на флешку с помощью Midnigt Commander, прогрессбар за секунду индицирует копирование файла на две трети, а потом на три/четыре минуты "засыпает". Более того, как вроде бы процесс копирования уже закончен, попытка отмонтирования флешки вызывает сообщение, что операция ещё не закончена. Красота, блин. Долго я мучил себя и гугл в поисках причины такого поведения. Оказалось всё просто. Нужно было правильно сформулировать вопрос гуглу.

Цитата:


--- Цитировать (выделенное) ---При копировании файла размером 700 Мб процесс копирования достаточно быстро доходил до 70%, затем три минуты копировались оставшиеся 30%, при этом наблюдались жуткие тормоза. Как я понял, под дисковый кэш линукс отдает практически всю свободную память. У ядра есть буфер файловой системы, когда пишем много данных этот буфер заполняется, а потом уже происходит сброс на носитель. И, получается, что первые 70% процесса копирования фильма - быстрое копирование в буфер, после семидесяти процентов процесса копирования начинался непосредственный сброс кучи данных из буфера на флешку, при этом вся остальная работа встает, так как оперативная память занята, пока не окончится сброс на медленную флешку, в т.е. наблюдаем тормоза и слайд-шоу на экране. Ситуацию можно исправить уменьшением буфера.
--- Конец цитаты ---

Решение проблемы - нужно ограничить буфер для данных.
Для этого редактируем файл /etc/sysctl.conf. Просто добавляем туда пару строчек под рутом, конечно:


--- Код: ---vm.dirty_bytes = 4194304
vm.dirty_background_bytes = 4194304
--- Конец кода ---

Что означает, что буфер ограничен 4-мя гигабайтами.
Затем фиксируем это командой:


--- Код: ---sysctl -p
--- Конец кода ---

У меня на компе проблемы с копированием исчезли.

HsH:
Когда-то тоже экспериментировал с настройкой данных параметров, но в итоге оставил дефолтные значения. Иногда пользователями  параллельно упоминается Bug #12309, с которым я кстати никогда не сталкивался.

Пользовательские параметры рекомендуется прописывать не в основной конфиг, а в "патчи" каталогов /etc/*.d/, т.к. их проще администрировать и они не затрутся при обновлении основного конфига - например, при установке новой версии пакета. В данном случае можно создать файл /etc/sysctl.d/20-vm_bytes.conf.

4194304 байт - 4 Мб.


--- Цитата: ArturS от Январь 05, 2022, 23:18:00 ---Более того, как вроде бы процесс копирования уже закончен, попытка отмонтирования флешки вызывает сообщение, что операция ещё не закончена.
--- Конец цитаты ---
Я в таком случае запускаю в терминале команду sync - когда её выполнение заканчивается, значит, копирование завершено и все кэши синхронизированы.

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

Навигация

[0] Главная страница сообщений

Перейти к полной версии