Содержимое кэшируется в оперативной памяти при записи на диск – Linux

Я столкнулся с этой проблемой, так как начал использовать Linux Distros. При копировании / перемещении либо графически, либо с помощью cp one / many large content (что-то вроде большого текстового файла, архива tar.gz, iso-файла, фильмов) часть содержимого записывается на диск, а часть кэшируется в памяти (RAM). Во время копирования количество общей и кэшированной памяти резко увеличилось (с помощью free -m ).

Через некоторое время менеджер файлов (например, Dolphin, PCManFM) или cp показывает, что копирование завершено, но данные фактически не записаны на диск, пока я не sync

Я думаю, что это не проблема с оборудованием.

  • Проверено многими внутренними и внешними жесткими дисками, USB-накопителями различных марок, но все с одинаковым результатом.

    • Нет проблемы с APM на жестком диске, я всегда отключаю управление жестким диском.

    • Проблема такая же с dd и cat, как dd if=live.iso of=/dev/sdb .

    • Не проблема с дистрибутивами, Cheked с Debian, Fedora, Ubuntu, Slax и т. Д.

    • Не перекрестно проверять другие ОС UNIX, если у кого-то есть такая же проблема с FreeBSD, OpenBSD и т. Д., Пожалуйста, дайте мне знать.

Так в чем же проблема и как ее решить?

2 Solutions collect form web for “Содержимое кэшируется в оперативной памяти при записи на диск – Linux”

Когда я прокомментировал (и по очевидным причинам производительности), ядро ​​использует кеш страницы . Так что это особенность, а не проблема. См. http://linuxatemyram.com/ для получения дополнительной информации.

Вы могли бы (но я не рекомендую это делать) с помощью некоторых параметров mount (чтобы отключить или уменьшить использование кеша страницы), и вам необходимо umount любое устройство (например, USB-ключ) перед отключением или удалением. Затем ядро ​​очистит все данные перед размонтированием.

Вы также можете выполнить sync .

По замыслу ядра ядро ​​сообщает утилитам userpace, что операция файла успешно завершена, в то время как кеши буферизуются.

Попробуйте отредактировать /etc/hdparm.conf, чтобы отключить кэширование записи с помощью опции write_cache = off . Однако это снизит производительность, и обычно рекомендуется использовать sync если вы хотите, чтобы буферы записи были сброшены на диск.

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