Содержимое кэшируется в оперативной памяти при записи на диск – 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 если вы хотите, чтобы буферы записи были сброшены на диск.

Interesting Posts

Как настроить HAproxy для перенаправления нескольких доменов

Как выполнить сжатие слоя поверх шифрования поверх BtrFS, для каждого файла?

Замена раздела в .img другим

Переменные целочисленного типа в Bash?

Как запустить serverpeak server при перезагрузке в качестве конкретного пользователя

Как использовать порты USB на мониторе для звука

Настройка последовательного чтения диска для повышения производительности

запустить сценарии оболочки в последовательности?

Не удается выполнить ping 8.8.8.8 с маршрутизатора, но может ли он отсылать его из локальной сети?

В чем разница между pam_unix и pam_systemd?

BIOS / GPT: нужен ли флаг загрузки?

firewall-cmd не блокирует указанный порт

Установка ОС из источника на отдельный раздел. Это возможно?

Как скопировать папку рекурсивно идемпотентным способом с помощью cp?

Linux эквивалентен удалению PowerShell «один ко многим»

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