3.7. Optimisation d'accès au disque Relatime

Le standard POSIX requiert que les systèmes d'exploitation effectue la maintenance des méta-données du système de fichiers qui enregistrent la dernière fois que chaque fichier a été accédé. Cette date de dernière modification est appelée atime, et la maintenir requiert une constante série d'opérations d'écriture sur le stockage. Ces écritures gardent les périphériques de stockage et leurs liens occupés et allumés. Comme peu d'applications utilisent les données atime, l'activité de ce périphérique de stockage gaspille de l'énergie. De plus, l'écriture sur le stockage se produirait même si le fichier n'était pas lu à partir du stockage, mais à partir du cache. Depuis quelques temps, le noyau Linux prend en charge une option noatime pour mount et n'écrirait pas de données atime sur les systèmes de fichiers montés avec cette option. Cependant, l'arrêt de cette fonctionnalité est problématique car certaines applications reposent sur les données atime, et elles échoueront si ces données ne sont pas disponibles.
Le noyau utilisé dans Red Hat Enterprise Linux 6 prend en charge une aytre alternative — relatime. Relatime effectue la maintenance de atime, mais pas à chaque fois qu'on accède à un fichier. Avec l'activation de cette option, les données atime sont écrites sur le disque seulement si le fichier a été modifié depuis que la dernière fois que les données atime ont été mises à jour (mtime), ou si le dernier accès au fichier a eu lieu depuis plus d'un certain temps (par défaut, un jour).
Par défaut, tous les systèmes de fichiers sont maintenant montés avec relatime activé. Pour supprimer cette fonctionnalité sur un système entier, utilisez le paramètre de démarrage default_relatime=0. Si relatime est activé sur un système par défaut, vous pouvez le supprimer sur n'importe quel système de fichiers en particulier en montant ce système de fichiers avec l'option norelatime. Finalement, pour changer le délai à partir duquel le système devra mettre à jour les données atime d'un fichier, utilisez le paramètre relatime_interval=, en spécifiant la période en secondes. La valeur par défaut est 86400.