Sinkronkan sistem file di latar belakang

2

Saat mengkode Python, saya cenderung menyimpan file sangat sering (saya memiliki code->test->code->test->...frekuensi yang cukup tinggi ). Saya benci ketika Linux menyinkronkan perubahan saya ke disk setiap kali saya menulis.

Bagaimana cara mengkonfigurasi Linux sehingga membuat file tulis di memori untuk jangka waktu tertentu / jumlah penulisan?

Untuk membuat ini berguna, tentu saja membaca untuk file yang belum-fsynced harus dari memori (sehingga penerjemah Python selalu melihat konten terbaru). Kredit tambahan untuk background-fsyncing yang tidak memblokir penulisan / pembacaan lain yang terjadi pada saat yang sama :-)

Jonas
sumber
1
Kedengarannya seperti masalah dengan editor Anda ...
Ignacio Vazquez-Abrams

Jawaban:

4

Biasanya Linux selalu menyimpan cache tulis untuk beberapa waktu, tetapi ini tergantung pada opsi pemasangan sistem file. Pastikan sistem file sudah terpasang dalam asyncmode, dengan memeriksa findmntatau /proc/mounts.

  • Baik: /dev/sda4 /home btrfs rw,relatime 0 0
  • Buruk: /dev/sda4 /home btrfs rw,sync,relatime 0 0

Jika disk Anda telah dipasang dalam mode sinkronisasi karena beberapa alasan, gunakan perintah ini untuk perbaikan sementara, dan sesuaikan konfigurasi Anda /etc/fstabuntuk membuatnya permanen:

mount -o remount,async /home

(Pengganti /homedengan root sistem file yang sebenarnya - mungkin hanya /dalam pengaturan satu partisi.)


Paling sering, meskipun, fsyncing tambahan dilakukan oleh editor teks Anda - Vim khususnya melakukan ini untuk file aktual dan swapfile. Gunakan opsi fsyncdan swapsyncdi vimrc untuk mengendalikannya:

set nofsync swapsync=

Untuk Emacs, Anda dapat mengatur write-region-inhibit-fsync.


Artikel ini menjelaskan fsync()perilaku Linux di Firefox, dan juga menyebutkan bahwa ext3 (bukan ext4) dapat menyebabkan penundaan yang sangat lama ketika sistem file di-mount dalam data=orderedmode:

Pada beberapa konfigurasi Linux yang agak umum, terutama menggunakan sistem file ext3 dalam data=orderedmode " ", memanggil fsync tidak hanya membilas data untuk file yang dipanggil, tetapi lebih pada semua data buffer untuk sistem file itu.

Jika Anda menggunakan ext3 dalam mode ini, pertimbangkan untuk menonaktifkannya.

grawity
sumber