Обычно Linux всегда кэширует записи на диск в течение некоторого времени, но это зависит от параметров монтирования файловой системы. Убедитесь, что файловая система смонтирована в async
режиме, проверив findmnt
или /proc/mounts
mounts .
- Хорошо:
/dev/sda4 /home btrfs rw,relatime 0 0
- Плохо:
/dev/sda4 /home btrfs rw,sync,relatime 0 0
Если ваш диск по какой-либо причине был смонтирован в режиме синхронизации , используйте эту команду для временного исправления и настройте свою конфигурацию в /etc/fstab
чтобы сделать ее постоянной:
mount -o remount,async /home
(Замените /home
фактическим корнем файловой системы - возможно, просто /
в настройке с одним разделом.)
Чаще всего, однако, дополнительное fsyncing выполняется вашим текстовым редактором - в частности, Vim делает это как для реального файла, так и для файла подкачки. Используйте опции fsync
и swapsync
в vimrc для управления им:
set nofsync swapsync=
Для Emacs вы можете установить write-region-inhibit-fsync
.
В этой статье описывается поведение Linux fsync()
в Firefox, а также упоминается, что ext3 (не ext4) может вызывать очень длительные задержки, когда файловая система монтируется в режиме data=ordered
:
В некоторых довольно распространенных конфигурациях Linux, особенно при использовании файловой системы ext3 в режиме « data=ordered
», вызов fsync не просто сбрасывает данные для вызываемого файла, а скорее для всех буферизованных данных для этой файловой системы.
Если вы используете ext3 в этом режиме, рассмотрите возможность его отключения.