web-dev-qa-db-fra.com

Avantages / Inconvénients de l'augmentation de "commit" dans FSTAB

J'ai fait de nombreuses optimisations de système obscur dans le passé, mais je me suis débarrassé de la plupart d'entre eux après powertop m'a dit que je devrais mettre mes ports USB sur Autosuspend, qui les a forcés à Un sommeil éternel, et aussi après avoir réalisé les avantages d'une version supérieure Bublicité.

Mais aujourd'hui, en regardant /etc/fstab, J'ai remarqué que j'avais défini l'option commit=60 pour / et /home. Je me souviens qu'il s'agissait d'une optimisation des ordinateurs portables, de réduire la quantité d'écritures sur le disque, ce qui permet de sauvegarder une batterie. Mais ensuite, je suis devenu préoccupé par le fait que cela pourrait causer une perte de données (parfois ma batterie est déconnectée, puis sur le démarrage fsck _ me dit sur un couple d'inodes orphelins).

Lors de la recherche d'une explication de cette option, je suis arrivé aux explications suivantes (la seconde semble contredire ma compréhension précédente):

$ 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

engage = 60 arrête la priorité "immédiate" (par défaut de 5 secondes) de l'écriture des écritures de surveille, la mise en cache des écritures pendant quelques secondes de plus tard plus tard. C'est bon dans la situation des lectures lourdes et les écrit mélangés ensemble, où l'utilisateur souhaite que les lectures prennent la priorité, de sorte que le processeur puisse être tenu occupé plutôt que de faire une pause en attendant que les écrivies se terminent avant de pouvoir continuer à lire.

Un exemple de monde réel que j'ai vu attend plusieurs secondes pour que le menu déroulant Gnome apparaisse, car apparemment aucune raison. La raison en était que le disque était occupé à écrire, la CPU a dû attendre que l'écriture se termine avant de pouvoir obtenir toutes les données du disque pour pouvoir afficher le menu.

Qu'est-ce que commit vraiment faire? Existe-t-il vraiment des avantages de l'augmentation (comme la réactivité et l'épargne-énergie)? Puisse-t-il réellement causer une perte de données?

14
Teresa e Junior

Qu'est-ce que commit fait vraiment?

Je pense que l'une des meilleures explications a été donnée ici par Allquixotic .

Existe-t-il vraiment des avantages de l'augmentation (comme la réactivité et l'épargne-énergie)? Puisse-t-il réellement causer une perte de données?

Selon la Documentation officielle ext4 :

EXT4 peut être dit de synchroniser toutes ses données et toutes les métadonnées toutes les secondes de "NRSEC". La valeur par défaut est de 5 secondes. Cela signifie que si vous perdez Votre pouvoir, vous perdrez autant que les 5 dernières secondes du travail (Votre système de fichiers ne sera pas endommagé cependant, grâce à la journalisation). Cette valeur par défaut (ou une valeur faible) sera blessée performance, mais c'est bon pour la sécurité des données . Le réglage à 0 aura le même effet que de la laisser à la valeur par défaut (5 secondes). le réglage à de très grandes valeurs améliorera les performances .

L'augmentation de la valeur commit signifie que vous risquez de perdre autant que les dernières secondes de travail (où n = intervalle de validation) si la plupart du temps, cela ne se produira pas . Appelez toujours FSYNC () et obtenez ses données écrites sur le disque, remplaçant le paramètre de validation. Vous pouvez le regarder comme "écrire tout sur le disque au moins cela souvent" .1
[ ).
[.____] en ce qui concerne les économies d'énergie, selon cette page , il s'avère que la valeur de commit ne permet pas d'économiser de l'énergie.

12
don_crissti