Wie und warum die Option „noatime“ die Leistung verbessert Linux-Systeme

Das Atime-Update wirkt sich auf die Systemleistung aus. Was dort passiert und was man dagegen tun kann – lesen Sie den Artikel.

Wie und warum die Option „noatime“ die Leistung verbessert Linux-Systeme
Jedes Mal, wenn ich ein Update durchführe Linux Auf meinem Heimcomputer muss ich regelmäßig bestimmte Aufgaben erledigen. Über die Jahre 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 Lieblingsprogramme. Außerdem passe ich die Systemeinstellungen an. Manchmal dauert das einfach zu lange. Und in letzter Zeit frage ich mich, ob ich mir diesen Aufwand wirklich antun muss.

eine Zeit — einer von drei Zeitstempeln für Dateien in Linux (Mehr dazu später.) Insbesondere fragte ich mich, ob es sich bei neueren Systemen noch lohne, atime zu deaktivieren. LinuxDa atime bei jedem Dateizugriff aktualisiert wird, wurde mir klar, dass dies einen erheblichen Einfluss auf die Systemleistung hat.
Ich habe kürzlich ein Upgrade auf Fedora 32 durchgeführt und aus Gewohnheit damit begonnen, atime zu deaktivieren. Ich dachte: Brauche ich das wirklich? Ich beschloss, mich mit diesem Thema zu befassen, und habe Folgendes ausgegraben.

Ein wenig über Dateizeitstempel

Um das zu verstehen, müssen Sie einen Schritt zurücktreten und sich einige Dinge über Dateisysteme in Erinnerung rufen. Linux und wie der Kernel Dateien und Verzeichnissen Zeitstempel zuweist. Das Datum der letzten Änderung von Dateien und Verzeichnissen können Sie mit dem Befehl anzeigen. ls -l (lang) oder einfach, indem man die Informationen dazu im Dateimanager nachsieht. Aber im Hintergrund arbeitet der Kernel.Linux Verfolgt mehrere Zeitstempel für Dateien und Verzeichnisse:

  1. Wann wurde die Datei zuletzt geändert (mtime)
  2. Wann wurden die Dateieigenschaften und Metadaten das letzte Mal geändert (ctime)
  3. Wann wurde zuletzt auf die Datei zugegriffen (atime)
  4. Sie können den Befehl verwenden Zustandum Informationen zu einer Datei oder einem Verzeichnis anzuzeigen. Hier ist die 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 -0500

Hier sehen Sie, 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 etwa zur gleichen Zeit geändert.

Wenn ich kopiere / etc / fstab In eine neue Datei ändern sich die Daten, um anzuzeigen, dass es sich um eine neue Datei handelt:

$ sudo cp fstab fstab.bak
$ stat fstab.bak
  File: fstab.bak
  Size: 261             Blocks: 8          IO Block: 4096   regular file
Device: b303h/45827d    Inode: 2105664     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_t:s0
Access: 2020-05-12 17:53:58.442659986 -0500
Modify: 2020-05-12 17:53:58.443659981 -0500
Change: 2020-05-12 17:53:58.443659981 -0500
 Birth: 2020-05-12 17:53:58.442659986 -0500

Wenn ich die Datei aber nur umbenenne, ohne ihren Inhalt zu ändern, Linux wird nur die Änderungszeit der Datei aktualisieren:

$ sudo mv fstab.bak fstab.tmp
$ stat fstab.tmp
  File: fstab.tmp
  Size: 261             Blocks: 8          IO Block: 4096   regular file
Device: b303h/45827d    Inode: 2105664     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_t:s0
Access: 2020-05-12 17:53:58.442659986 -0500
Modify: 2020-05-12 17:53:58.443659981 -0500
Change: 2020-05-12 17:54:24.576508232 -0500
 Birth: 2020-05-12 17:53:58.442659986 -0500

Diese Zeitstempel sind für bestimmte Unix-Programme sehr nützlich. Biff ist beispielsweise ein Programm, das Sie benachrichtigt, wenn Ihre E-Mail eine neue Nachricht enthält. Heutzutage nutzen nur wenige Menschen es Steak, aber in den Tagen, als Postfächer noch lokal im System vorhanden waren, war Biff weit verbreitet.

Woher weiß das Programm, ob sich neue E-Mails in Ihrem Posteingang befinden? biff vergleicht den Zeitpunkt der letzten Änderung (als die Posteingangsdatei mit einer neuen E-Mail-Nachricht aktualisiert wurde) und den Zeitpunkt des letzten Zugriffs (das letzte Mal, als Sie Ihre E-Mail gelesen haben). Erfolgt die Änderung später als beim Zugriff, erkennt biff, dass ein neuer Brief eingetroffen ist und benachrichtigt Sie darüber. Der Mutt-E-Mail-Client funktioniert ähnlich.

Der Zeitstempel des letzten Zugriffs ist auch nützlich, wenn Sie Statistiken zur Dateisystemnutzung erfassen und die Leistung optimieren müssen. Systemadministratoren müssen wissen, auf welche Objekte zugegriffen wird, damit sie das Dateisystem entsprechend konfigurieren können.

Da die meisten modernen Programme diese Kennzeichnung jedoch nicht mehr benötigen, gab es einen Vorschlag, sie abzuschaffen. Im Jahr 2007 diskutierten Linus Torvalds und mehrere andere Kernel-Entwickler die Kennzeichnung „atime“ im Zusammenhang mit einem Leistungsproblem. Linux Ingo Molnar äußerte sich wie folgt zu atime und dem ext3-Dateisystem:

„Es ist ziemlich seltsam, dass jeder Desktop und Server Linux leiden unter einer spürbaren Verschlechterung der E/A-Leistung aufgrund ständiger Aktualisierungen der Zugriffszeit (atime), obwohl es nur zwei tatsächliche Benutzer gibt: tmpwatch [das so konfiguriert werden kann, dass es ctime verwendet, sodass es kein großes Problem darstellt] und einige Backup-Tools.“

Aber einige Programme benötigen diesen Zeitstempel weiterhin, daher würde das Entfernen von atime diese Programme unbrauchbar machen. Kernel-Entwickler Linux sollte die Freiheit des Nutzers nicht einschränken.

Solomons Lösung

In Verteilungen Linux Eine Vielzahl von Anwendungen ist bereits enthalten, und Benutzer können zusätzlich weitere Programme herunterladen und installieren, um ihren Bedürfnissen gerecht zu werden. Dies ist ein wesentlicher Vorteil eines Open-Source-Betriebssystems. Allerdings erschwert es die Optimierung der Dateisystemleistung. Das Entfernen ressourcenintensiver Komponenten kann die Systemleistung beeinträchtigen.

Als Kompromiss haben die Kernel-Entwickler Linux Wir haben eine neue Relaytime-Option eingeführt, die ein Gleichgewicht zwischen Leistung und Kompatibilität anstreben soll:

Die Zugriffszeit wird nur aktualisiert, wenn die vorherige Zugriffszeit kürzer ist als die aktuelle Änderungs- oder Statusänderungszeit... Beginnend mit Linux Ab Version 2.6.30 verwendet der Kernel diese Option standardmäßig (sofern nicht „noatime“ angegeben ist)… Außerdem ab Version Linux 2.6.30 wird die letzte Zugriffszeit einer Datei immer aktualisiert, wenn sie älter als einen Tag ist.

Moderne Systeme Linux (mit ... anfangen Linux Version 2.6.30 (veröffentlicht 2009) nutzt bereits Relaytime, was eine deutliche Leistungssteigerung bewirken sollte. Daher ist keine Konfiguration der Datei erforderlich. / etc / fstab, und mit Relaytime können Sie sich auf die Standardeinstellung verlassen.

Verbesserung der Systemleistung mit noatime

Wenn Sie Ihr System jedoch auf maximale Leistung optimieren möchten, ist die Deaktivierung von atime immer noch möglich.

Bei sehr schnellen modernen Laufwerken (wie NVME oder Fast SSD) ist die Leistungsänderung möglicherweise nicht sehr spürbar, es gibt jedoch einen kleinen Anstieg.

Wenn Sie wissen, dass Sie keine Software verwenden, die atime erfordert, können Sie die Leistung leicht verbessern, indem Sie die Option noatime in der Datei aktivieren /etc/fstab. Danach wird der Kernel nicht mehr ständig aktualisiert. Verwenden Sie beim Mounten des Dateisystems die Option noatime:

/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 0

Die Änderungen werden beim nächsten Neustart wirksam.

Über die Rechte der Werbung

Benötigen Sie einen Server zum Hosten Ihrer Website? Unser Unternehmen bietet zuverlässige Server Mit einer täglichen oder einmaligen Zahlung ist jeder Server an einen Internetkanal mit 500 Megabit angeschlossen und kostenlos vor DDoS-Angriffen geschützt!

Wie und warum die Option „noatime“ die Leistung verbessert Linux-Systeme

Source: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz und VPS-VDS-Servern 🔥 Kaufen Sie zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server | ProHoster