He hecho muchas optimizaciones oscuras del sistema en el pasado, pero me deshice de la mayoría de ellas después de powertop
que me dijera que debía configurar mis puertos USB para que se suspendieran automáticamente , lo que los obligó a un sueño eterno, y también después de que me di cuenta de los beneficios de una mayor capacidad de intercambio. .
Pero hoy, mientras miraba /etc/fstab
, noté que había configurado la opción commit=60
para / y / home . Recuerdo que esta fue una optimización para computadoras portátiles, para reducir la cantidad de escrituras en el disco, ahorrando así batería. Pero luego me preocupé porque esto podría causar la pérdida de datos (a veces mi batería se desconecta, y luego en el arranque fsck
me informa sobre un par de inodes huérfanos).
Mientras buscaba una explicación para esta opción, llegué a las siguientes explicaciones (la segunda parece contradecir mi comprensión anterior):
$ 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 detiene la priorización "inmediata" (predeterminada de 5 segundos) de escrituras de sobre lecturas, almacenando en caché las escrituras unos segundos más después. Esto es bueno en la situación de lecturas y escrituras pesadas mezcladas, donde el usuario quiere que las lecturas tengan prioridad, de modo que el procesador pueda mantenerse ocupado en lugar de pausar mientras espera que finalicen las escrituras antes de que pueda continuar leyendo.
Un ejemplo del mundo real que he visto está esperando varios segundos para que aparezca el menú desplegable Gnome, aparentemente sin razón. La razón era que el disco estaba ocupado escribiendo, por lo que la CPU tuvo que esperar a que terminara la escritura antes de poder obtener todos los datos del disco para poder mostrar el menú.
¿Qué hace realmente commit ? ¿Existen realmente ventajas de aumentarlo (como la capacidad de respuesta y el ahorro de energía)? ¿Puede realmente causar pérdida de datos?