Ho fatto molte oscure ottimizzazioni di sistema in passato, ma mi sono sbarazzato della maggior parte di loro dopo powertop
avermi detto che avrei dovuto impostare le mie porte USB su autosospensione , il che le ha costrette a un sonno eterno, e anche dopo aver realizzato i vantaggi di una maggiore swappiness .
Ma oggi, guardando /etc/fstab
, ho notato che avevo impostato l'opzione commit=60
per / e / home . Ricordo che si trattava di un'ottimizzazione per laptop, per ridurre la quantità di scritture sul disco, risparmiando così la batteria. Ma poi mi sono preoccupato che ciò potrebbe causare la perdita di dati (a volte la mia batteria viene disconnessa, e quindi all'avvio fsck
mi parla di un paio di inode orfani).
Durante la ricerca di una spiegazione per questa opzione, sono arrivato alle seguenti spiegazioni (la seconda sembra contraddire la mia precedente comprensione):
$ 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
commit = 60 interrompe la prioritizzazione "immediata" (impostazione predefinita di 5 secondi) delle scritture delle letture eccessive, memorizzando nella cache le scritture per alcuni secondi in seguito. Ciò è positivo nella situazione di letture e scritture pesanti mescolate insieme, in cui l'utente desidera che le letture abbiano la priorità, in modo che il processore possa essere tenuto occupato piuttosto che mettere in pausa mentre attende che le scritture finiscano prima di poter continuare a leggere.
Un esempio del mondo reale che ho visto sta aspettando diversi secondi prima che appaia il menu a discesa di Gnome, apparentemente senza motivo. Il motivo era che il disco era occupato a scrivere, quindi la CPU ha dovuto attendere il termine della scrittura prima di poter ottenere tutti i dati dal disco per poter mostrare il menu.
Cosa fa davvero il commit ? Ci sono davvero vantaggi nell'aumentarlo (come reattività e risparmio energetico)? Può effettivamente causare la perdita di dati?