Saya telah melakukan banyak optimasi sistem yang tidak jelas di masa lalu, tetapi saya menyingkirkan sebagian besar dari mereka setelah powertop
mengatakan kepada saya bahwa saya harus mengatur port USB saya ke autosuspend , yang memaksa mereka untuk tidur abadi, dan juga setelah saya menyadari manfaat dari swappiness yang lebih tinggi. .
Tapi hari ini, sambil melihat /etc/fstab
, saya perhatikan saya telah menetapkan opsi commit=60
untuk / dan / rumah . Saya ingat bahwa ini adalah pengoptimalan untuk laptop, untuk mengurangi jumlah penulisan ke disk, sehingga menghemat baterai. Tapi kemudian saya menjadi khawatir bahwa ini dapat menyebabkan kehilangan data (kadang-kadang baterai saya terputus, dan kemudian pada saat boot fsck
memberitahu saya tentang beberapa yatim piatu inode).
Saat mencari penjelasan untuk opsi ini, saya sampai pada penjelasan berikut (yang kedua tampaknya bertentangan dengan pemahaman saya sebelumnya):
$ man mount | awk '/commit=/,/^$/'
commit=nrsec
Sync all data and metadata every nrsec seconds. The default value is 5 seconds.
Zero means default.
https://forums.gentoo.org/viewtopic-p-4088752.html
komit = 60 menghentikan prioritas "segera" (default 5 detik) dari penulisan lebih dari baca, caching penulisan untuk beberapa detik kemudian. Ini bagus dalam situasi membaca dan menulis yang berat bercampur menjadi satu, di mana pengguna ingin agar membaca dibaca sebagai prioritas, sehingga prosesor dapat tetap sibuk daripada berhenti sementara menunggu penulisan selesai sebelum dapat melanjutkan membaca.
Contoh dunia nyata yang saya lihat adalah menunggu beberapa detik untuk menu pull-down Gnome muncul, tanpa alasan. Alasannya adalah bahwa disk sedang sibuk menulis, jadi CPU harus menunggu penulisan selesai sebelum bisa mendapatkan semua data dari disk untuk dapat menampilkan menu.
Apa yang sebenarnya dilakukan komit ? Apakah benar-benar ada keuntungan meningkatkannya (seperti daya tanggap dan penghematan daya)? Bisakah itu benar-benar menyebabkan kehilangan data?