Обычно 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 в этом режиме, рассмотрите возможность его отключения.