Das Aktualisieren von atime beeinflusst die Systemleistung. Was genau passiert da und was kann ich dagegen tun? Lesen Sie den Artikel.

Jedes Mal, wenn ich Linux auf meinem Heimcomputer aktualisiere, muss ich bestimmte Aufgaben erledigen. Im Laufe der Jahre ist das zur Gewohnheit geworden: Ich erstelle Sicherungskopien meiner Dateien, lösche das System, installiere alles von Grund auf neu, stelle meine Dateien wieder her und installiere dann meine Lieblingsanwendungen erneut. Ich passe auch die Systemeinstellungen an meine BedĂŒrfnisse an. Manchmal nimmt das zu viel Zeit in Anspruch. KĂŒrzlich fragte ich mich, ob ich diesen Kopfzerbruch wirklich brauche.
atime - eine der drei Zeitstempel fĂŒr Dateien in Linux (dazu spĂ€ter mehr). Besonders 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? Ich beschloss, diesem Thema auf den Grund zu gehen, und das habe ich herausgefunden.
Einige Informationen zu Dateistempeln
Um dies zu verstehen, mĂŒssen Sie einen Schritt zurĂŒckgehen und einige Dinge ĂŒber Linux-Dateisysteme und wie der Kernel Zeitstempel fĂŒr Dateien und Verzeichnisse zuweist, in Erinnerung rufen. Sie können das Datum der letzten Ănderung von Dateien und Verzeichnissen sehen, indem Sie den Befehl ls -l (long) ausfĂŒhren oder einfach die Informationen dazu im Dateimanager ansehen. Aber hinter den Kulissen verfolgt der Linux-Kernel mehrere Zeitstempel fĂŒr Dateien und Verzeichnisse:
- Wann die Datei zuletzt geÀndert wurde (mtime)
- Wann die Eigenschaften und Metadaten der Datei zuletzt geÀndert wurden (ctime)
- Wann zuletzt auf die Datei zugegriffen wurde (atime)
- Sie können den Befehl stat, verwenden, um die Daten zu einer Datei oder einem Verzeichnis anzuzeigen. Hier ist eine Datei /etc/fstab von einem meiner Testserver:
$ stat fstab
File: fstab
Size: 261 Blocks: 8 IO Block: 4096 regular file
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 sieht man, dass diese Datei am 25. April 2019 erstellt wurde, als ich das System installierte. 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, Àndern sich die Daten, 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
Ăndern: 2020-05-12 17:53:58.443659981 -0500
Erstellung: 2020-05-12 17:53:58.442659986 -0500Aber wenn ich die Datei einfach umbenenne, ohne ihren Inhalt zu Àndern, wird Linux nur die Zeit der DateiÀnderung aktualisieren:
$ 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
Ăndern: 2020-05-12 17:54:24.576508232 -0500
Erstellung: 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 Sie benachrichtigt, wenn eine neue Nachricht in Ihrem E-Mail-Postfach eingeht. Heutzutage nutzt kaum jemand , aber in den Tagen, als PostfĂ€cher lokal fĂŒr das System waren, war biff ziemlich weit verbreitet.
Wie erkennt das Programm, ob Sie neue E-Mails im Posteingang haben? biff vergleicht die Zeit der letzten Ănderung (wann die Datei des Posteingangs mit einer neuen E-Mail aktualisiert wurde) und die Zeit des letzten Zugriffs (das letzte Mal, dass Sie Ihre E-Mails gelesen haben). Wenn die Ănderung spĂ€ter erfolgte als der Zugriff, versteht biff, dass eine neue Nachricht angekommen ist, und informiert Sie darĂŒber. Der E-Mail-Client Mutt funktioniert Ă€hnlich.
Der Zeitstempel des letzten Zugriffs ist auch nĂŒtzlich, wenn Sie Statistiken ĂŒber die Dateisystemnutzung sammeln und die Leistung optimieren mĂŒssen. Systemadministratoren mĂŒssen wissen, auf welche Objekte zugegriffen wird, um das Dateisystem entsprechend zu konfigurieren.
Aber die meisten modernen Programme benötigen diesen Zeitstempel nicht mehr, weshalb der Vorschlag gemacht wurde, ihn nicht mehr zu verwenden. Im Jahr 2007 diskutierten Linus Torvalds und einige andere Kernel-Entwickler atime im Kontext eines Leistungsproblems. Der Linux-Kernel-Entwickler Ingo Molnar machte folgende Bemerkung zu atime und dem ext3-Dateisystem:
Es ist ziemlich seltsam, dass jeder Linux-Arbeitsplatz und Server unter einem erheblichen RĂŒckgang der E/A-Leistung leidet, aufgrund stĂ€ndiger atime-Updates, obwohl es nur zwei tatsĂ€chliche Benutzer gibt: tmpwatch [das so konfiguriert werden kann, dass es ctime verwendet, sodass dies kein groĂes Problem darstellt] und einige Backup-Tools.
Aber die Leute verwenden immer noch einige Programme, die dieses Tag benötigen. Das Entfernen von atime wĂŒrde ihre FunktionalitĂ€t beeintrĂ€chtigen. Die Entwickler des Linux-Kernels sollten die Freiheit des Benutzers nicht einschrĂ€nken.
Salomonische Lösung
In Linux-Distributionen sind viele Anwendungen enthalten und darĂŒber hinaus können Benutzer weitere Programme gemÀà ihren BedĂŒrfnissen herunterladen und installieren. Dies ist ein entscheidender Vorteil eines Open-Source-Betriebssystems. Doch dies erschwert die Optimierung der Leistung Ihres Dateisystems. Das Entfernen von ressourcenintensiven Komponenten kann das System destabilisieren.
Als Kompromiss haben die Entwickler des Linux-Kernels eine neue Option namens relaytime implementiert, die darauf abzielt, ein Gleichgewicht zwischen Leistung und KompatibilitÀt zu gewÀhrleisten:
atime wird nur aktualisiert, wenn die vorherige Zugriffszeit kleiner ist als die aktuelle Ănderungs- oder StatusĂ€nderungszeit ... Ab Linux 2.6.30 verwendet der Kernel standardmĂ€Ăig diese Option (es sei denn, noatime ist angegeben) ... AuĂerdem wird ab Linux 2.6.30 die letzte Zugriffszeit einer Datei immer aktualisiert, wenn sie mehr als einen Tag alt ist.
Moderne Linux-Systeme (beginnend mit 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 einstellen mĂŒssen /etc/fstab, und mit relaytime können Sie sich auf den Standardwert verlassen.
Leistungssteigerung des Systems durch noatime
Wenn Sie jedoch Ihr System so konfigurieren möchten, dass Sie die maximale Leistung erzielen, ist das Deaktivieren von atime nach wie vor möglich.
Die LeistungsÀnderung ist auf sehr schnellen modernen Festplatten (wie NVME oder schnellen SSDs) möglicherweise nicht sofort bemerkbar, aber es gibt einen geringen Zuwachs.
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 diesem wird das atime nicht mehr stÀndig aktualisiert. Verwenden Sie die Option noatime beim EinhÀngen 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.
Als Werbung
Benötigen Sie einen Server fĂŒr die Website? Unsere Firma bietet mit tĂ€glicher oder einmaliger Bezahlung, jeder Server ist mit einem 500 Megabit Internetanschluss verbunden und kostenlos vor DDoS-Angriffen geschĂŒtzt!
Quelle: habr.com
