Normalmente o Linux sempre armazena em cache gravações de disco por algum tempo, mas isso depende das opções de montagem do sistema de arquivos. Certifique-se de que o sistema de arquivos esteja montado no modo async
, verificando findmnt
ou /proc/mounts
.
- Bom:
/dev/sda4 /home btrfs rw,relatime 0 0
- Ruim:
/dev/sda4 /home btrfs rw,sync,relatime 0 0
Se o seu disco tiver sido montado no modo sync por algum motivo, use este comando para uma correção temporária e ajuste sua configuração em /etc/fstab
para torná-lo permanente:
mount -o remount,async /home
(Substitua /home
pela raiz real do sistema de arquivos - possivelmente apenas /
em uma configuração de partição única.)
Na maioria das vezes, porém, o processamento extra é feito pelo seu editor de texto - o Vim, em particular, faz isso tanto para o arquivo real quanto para o swapfile. Use o fsync
e o swapsync
opções em vimrc para controlá-lo:
set nofsync swapsync=
Para o Emacs, você pode definir write-region-inhibit-fsync
.
Este artigo descreve o comportamento do Linux fsync()
no Firefox, e também menciona que ext3 (não ext4) pode causar atrasos muito longos quando o sistema de arquivos é montado no modo data=ordered
:
On some rather common Linux configurations, especially using the ext3 filesystem in the “
data=ordered
” mode, calling fsync doesn’t just flush out the data for the file it’s called on, but rather on all the buffered data for that filesystem.
Se você estiver usando o ext3 neste modo, considere desativá-lo.