Как уменьшить буфер записи Linux для съемных устройств?

При записи содержимого на съемные устройства на Linux (USB-накопители / жесткие диски, SD-карты и т. Д.) Я часто вижу невероятные скорости записи в первые несколько секунд, иногда в порядке GB / s (заполнение буфера записи), за которым следуют несколько минут тишины (буфер на самом деле записывается на устройство).

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

В моем случае буфер записи, по-видимому, превышает GB. Есть ли способ контролировать это? Я хотел бы уменьшить его до более разумной ценности.

Примечание. Это не касается кеша файловой системы, этот эффект также появляется на необработанных устройствах

Примечание. Я не хочу полностью отключать буферы записи

Благодаря!

  • Установка и размонтирование USB-накопителя из командной строки
  • Полностью отключить / деактивировать USB в Ubuntu 10.04
  • Безопасное извлечение USB-накопителя (Kindle) из командной строки
  • One Solution collect form web for “Как уменьшить буфер записи Linux для съемных устройств?”

    Я нашел ответ. 64-разрядная версия Linux поддерживает большой буфер записи (20% доступной памяти!) По умолчанию. (Интересно, что 32-разрядная Linux ограничивает себя не более 180 МБ). Чтобы изменить размер грязного буфера, например, 200 МБ, можно использовать

     echo 200000000 > /proc/sys/vm/dirty_bytes 

    ИЛИ использовать процент ОЗУ, например 1%:

     echo 1 > /proc/sys/vm/dirty_ratio 

    Дополнительная информация: https://lwn.net/Articles/572911/

    Interesting Posts

    Использование grep с шаблоном, который содержит переменную, подлежащую расширению

    Проверка того, нажата ли конкретная клавиша в сценарии оболочки

    Связь Red Hat vNIC (Virtual NIC) с физической NIC

    Partclone: ​​ошибка при попытке копирования разделенных блоков-блоков

    Как рекурсивно перемещать партии из 20 файлов в пронумерованные папки из папки из 1000 файлов

    Выполнять скрипт пользователя как root в приложениях запуска

    Загрузка Grub Multi OS для планшета (только с двумя клавишами)

    Chrony 506 Не могу поговорить с демоном

    Правило sudoers запускает и останавливает eth interface

    загрузить отсутствующую библиотеку из ~ / без root или symlinks на совместном хостинге?

    Установите Fedora 17 в iSCSI Target, загрузитесь с iSCSI Target

    Как ограничить пропускную способность, используемую процессом?

    Как изменить Grub 2 по умолчанию постоянно?

    Средства командной строки Mac OS X – отличия от FreeBSD

    проанализировать журналы Mongodb с syslog-ng

    Linux и Unix - лучшая ОС в мире.