Die Aktualisierung von atime beeinflusst die Systemleistung. Was dabei genau passiert und was Sie dagegen tun können – lesen Sie den Artikel.

Jedes Mal, wenn ich Linux auf meinem Heimcomputer aktualisiere, stehe ich vor bestimmten Herausforderungen. Mit den Jahren ist das zur Gewohnheit geworden: Ich sichere meine Dateien, lösche das System, installiere alles neu, stelle meine Dateien wieder her und installiere dann meine Lieblingsanwendungen erneut. Ich passe auch die Systemeinstellungen an. Manchmal kostet mich das zu viel Zeit. Kürzlich fragte ich mich, ob ich mir diesen Stress wirklich antun sollte.
atime — einer von drei Zeitstempeln für Dateien in Linux (darüber später mehr). Insbesondere habe ich mich gefragt, ob ich atime in neueren Linux-Systemen immer noch deaktivieren sollte. Da atime jedes Mal aktualisiert wird, wenn auf eine Datei zugegriffen wird, wurde mir klar, dass es einen erheblichen Einfluss auf die Systemleistung hat.
Kürzlich habe ich auf Fedora 32 aktualisiert und aus Gewohnheit begonnen, atime zu deaktivieren. Ich fragte mich: Brauche ich das überhaupt? Also beschloss ich, diesem Thema nachzugehen, und hier sind meine Erkenntnisse.
Ein wenig über Dateizeitstempel
Um dies zu verstehen, müssen Sie einen Schritt zurückgehen und sich an einige Dinge über Linux-Dateisysteme und darüber erinnern, wie der Kernel Zeitstempel für Dateien und Verzeichnisse vergibt. Sie können das letzte Änderungsdatum von Dateien und Verzeichnissen sehen, indem Sie den Befehl ls -l (lang) oder einfach die Informationen im Dateimanager ansehen. Aber hinter den Kulissen verfolgt der Linux-Kernel mehrere Zeitstempel für Dateien und Verzeichnisse:
- Wann die Datei zuletzt modifiziert wurde (mtime)
- Wann die Eigenschaften und Metadaten der Datei zuletzt geändert wurden (ctime)
- Wann die Datei zuletzt aufgerufen wurde (atime)
- Sie können den Befehl stat, verwenden, um Daten über eine Datei oder ein Verzeichnis zu sehen. Hier ist eine Datei /etc/fstab von einem meiner Testserver:
$ stat fstab
File: fstab
Size: 261 Blocks: 8 IO Block: 4096 reguläre Datei
Device: b303h/45827d Inode: 2097285 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:etc_t:s0
Access: 2019-04-25 21:10:18.083325111 -0500
Modify: 2019-05-16 10:46:47.427686706 -0500
Change: 2019-05-16 10:46:47.434686674 -0500
Birth: 2019-04-25 21:03:11.840496275 -0500Hier sehen Sie, dass diese Datei am 25. April 2019 erstellt wurde, als ich das System installiert habe. Meine Datei /etc/fstab wurde zuletzt am 16. Mai 2019 geändert, und alle anderen Attribute wurden ungefähr zur gleichen Zeit geändert.
Wenn ich kopiere /etc/fstab in eine neue Datei, ändert sich das Datum, was darauf hinweist, dass es sich um eine neue Datei handelt:
$ sudo cp fstab fstab.bak
$ stat fstab.bak
Datei: fstab.bak
Größe: 261 Blöcke: 8 IO Block: 4096 reguläre Datei
Gerät: b303h/45827d Inode: 2105664 Links: 1
Zugriff: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Kontext: unconfined_u:object_r:etc_t:s0
Zugriff: 2020-05-12 17:53:58.442659986 -0500
Ändern: 2020-05-12 17:53:58.443659981 -0500
Änderung: 2020-05-12 17:53:58.443659981 -0500
Geburt: 2020-05-12 17:53:58.442659986 -0500Aber wenn ich die Datei einfach umbenenne, ohne ihren Inhalt zu ändern, aktualisiert Linux nur die Änderungszeit der Datei:
$ sudo mv fstab.bak fstab.tmp
$ stat fstab.tmp
Datei: fstab.tmp
Größe: 261 Blöcke: 8 IO Block: 4096 reguläre Datei
Gerät: b303h/45827d Inode: 2105664 Links: 1
Zugriff: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Kontext: unconfined_u:object_r:etc_t:s0
Zugriff: 2020-05-12 17:53:58.442659986 -0500
Ändern: 2020-05-12 17:53:58.443659981 -0500
Änderung: 2020-05-12 17:54:24.576508232 -0500
Geburt: 2020-05-12 17:53:58.442659986 -0500Diese Zeitstempel sind sehr nützlich für bestimmte Unix-Programme. Zum Beispiel ist biff ein Programm, das Ihnen mitteilt, wenn eine neue E-Mail eingegangen ist. Heutzutage wird biff kaum noch verwendet. , aber zu den Zeiten, als die Postfächer lokal für das System waren, war biff ziemlich weit verbreitet.
Wie erfährt das Programm, ob Sie neue E-Mails im Posteingang haben? Biff vergleicht die Zeit der letzten Änderung (wann die Datei mit eingehenden E-Mails durch eine neue E-Mail aktualisiert wurde) und die Zeit des letzten Zugriffs (das letzte Mal, als Sie Ihre E-Mails gelesen haben). Wenn die Änderung nach dem Zugriff erfolgt ist, erkennt biff, dass eine neue E-Mail eingegangen ist, und informiert Sie darüber. Der E-Mail-Client Mutt funktioniert ungefähr ähnlich.
Der Zeitstempel des letzten Zugriffs ist auch nützlich, wenn Sie Statistiken zur Nutzung des Dateisystems sammeln und die Leistung anpassen müssen. Systemadministratoren müssen wissen, auf welche Objekte zugegriffen wird, um das Dateisystem entsprechend zu optimieren.
Für die meisten modernen Programme ist dieses Attribut heutzutage nicht mehr notwendig, weshalb der Vorschlag gemacht wurde, es nicht zu verwenden. Im Jahr 2007 diskutierten Linus Torvalds und einige andere Kernel-Entwickler atime im Zusammenhang mit einem Leistungsproblem. Der Linux-Kernel-Entwickler Ingo Molnar äußerte sich dazu folgendermaßen bezüglich atime und des Dateisystems ext3:
„Es ist ziemlich seltsam, dass jeder Desktop und Server unter Linux unter einem merklichen Rückgang der I/O-Leistung leidet, weil atime ständig aktualisiert wird, während es nur zwei wirkliche Benutzer gibt: tmpwatch [das so konfiguriert werden kann, dass es ctime verwendet, wodurch das kein großes Problem darstellt] und einige Backup-Tools.“
Dennoch verwenden Menschen weiterhin einige Programme, die auf dieses Attribut angewiesen sind. Daher würde das Entfernen von atime ihre Funktionalität beeinträchtigen. Die Linux-Kernel-Entwickler sollten die Freiheit der Nutzer nicht einschränken.
Salomonisches Urteil
In Linux-Distributionen sind viele Anwendungen integriert, und zusätzlich können Benutzer weitere Programme entsprechend ihren Bedürfnissen herunterladen und installieren. Dies ist ein entscheidender Vorteil von Open-Source-Betriebssystemen. Allerdings erschwert es die Optimierung der Leistung Ihres Dateisystems. Das Entfernen ressourcenintensiver Komponenten kann die Systemfunktionalität beeinträchtigen.
Als Kompromiss haben die Entwickler des Linux-Kernels die neue Option relaytime eingeführt, die darauf abzielt, ein Gleichgewicht zwischen Leistung und Kompatibilität zu gewährleisten:
atime wird nur aktualisiert, wenn die vorherige Zugriffszeit geringer ist als die aktuelle Zeit der Modifizierung oder Statusänderung … Ab Linux 2.6.30 verwendet der Kernel standardmäßig diese Option (es sei denn, noatime wird angegeben) … Außerdem wird ab Linux 2.6.30 die letzte Zugriffszeit auf eine Datei immer aktualisiert, wenn sie älter als 1 Tag ist.
Moderne Linux-Systeme (seit Linux 2.6.30, das 2009 veröffentlicht wurde) nutzen bereits relaytime, was zu einem erheblichen Leistungszuwachs führen sollte. Das bedeutet, dass Sie die Datei nicht anpassen müssen, /etc/fstabund mit relaytime können Sie sich auf den Standardwert verlassen.
Steigerung der Systemleistung mit noatime
Wenn Sie jedoch Ihr System für maximale Leistung optimieren möchten, ist das Deaktivieren von atime weiterhin möglich.
Die Leistungsänderung ist auf modernen, sehr schnellen Festplatten (wie NVME oder schnellen SSDs) möglicherweise nicht sofort bemerkbar, es gibt jedoch einen kleinen Vorteil.
Wenn Sie wissen, dass Sie keine Software verwenden, die atime benötigt, können Sie die Leistung leicht steigern, indem Sie die Option noatime in der Datei aktivieren /etc /fstab. Nach dieser Änderung wird der Kernel atime nicht ständig aktualisieren. Verwenden Sie die Option noatime beim Mounten des Dateisystems:
/dev/mapper/fedora_localhost--live-root / ext4 defaults,noatime,x-systemd.device-timeout=0 1 1
UUID=be37c451-915e-4355-95c4-654729cf662a /boot ext4 defaults,noatime 1 2
UUID=C594-12B1 /boot/efi vfat umask=0077,shortname=winnt 0 2
/dev/mapper/fedora_localhost--live-home /home ext4 defaults,noatime,x-systemd.device-timeout=0 1 2
/dev/mapper/fedora_localhost--live-swap none swap defaults,x-systemd.device-timeout=0 0 0Die Änderungen treten beim nächsten Neustart in Kraft.
Im Auftrag der Werbung
Benötigen Sie einen Server für das Hosting Ihrer Website? Unser Unternehmen bietet mit täglich oder einmaliger Zahlung, jeder Server ist an einen Internetanschluss mit 500 Megabit angeschlossen und kostenlos gegen DDoS-Angriffe geschützt!
Quelle: habr.com
