Hogyan és miért növeli a noatime opció a Linux rendszerek teljesítményét

Az atime frissítése hatással van a rendszer teljesítményére. Mi történik és mit tegyünk ezzel – olvassa el a cikkben.

Hogyan és miért növeli a noatime opció a Linux rendszerek teljesítményét
Mindig, amikor frissítem a Linuxot otthoni számítógépemen, bizonyos feladatokat kell megoldanom. Az évek során ez megszokássá vált: biztonsági mentést készítek a fájljaimról, törlöm a rendszert, mindent újra telepítek, visszaállítom a fájljaimat, majd újra telepítem a kedvenc alkalmazásaimat. A beállításokat is személyre szabom. Néha túl sok időt vesz igénybe. Nemrégiben átgondoltam, szükségem van-e erre a fejfájásra.

atime – az egyik három időbélyeg a fájlok számára a Linuxban (erről később). Különösen az foglalkoztatott, hogy érdemes-e még mindig letiltani az atime-ot a modernebb Linux rendszerekben. Mivel az atime minden egyes fájlhozzáféréskor frissül, rájöttem, hogy jelentős hatással van a rendszer teljesítményére.
Nemrég frissítettem a Fedora 32-re, és szokás szerint elkezdtem az atime letiltásával. Elgondolkodtam: szükségem van rá egyáltalán? Úgy döntöttem, hogy utánajárok, és itt van, amit megtudtam.

Egy kis információ a fájlok időbélyegeiről

Ahhoz, hogy megértsük, egy lépést hátra kell lépnünk, és emlékeznünk kell néhány dologra a Linux fájlrendszereiről, és arról, hogy az operációs rendszer hogyan rendeli hozzá az időbélyegeket a fájlokhoz és könyvtárakhoz. A fájlok és könyvtárak utolsó módosítási dátumát az alábbi parancs végrehajtásával érhetjük el: ls -l (hosszú) vagy egyszerűen megnézheti az információt a fájlkezelőben. De a háttérben a Linux kernel több időbélyeget is nyomon követ a fájlok és könyvtárak esetében:

  1. Mikor módosították utoljára a fájlt (mtime)
  2. Mikor módosultak utoljára a fájl tulajdonságai és metaadatai (ctime)
  3. Mikor fértek hozzá utoljára a fájlhoz (atime)
  4. Használhatja a parancsot stat, hogy megnézze a fájl vagy könyvtár adatait. Itt van egy fájl /etc/fstab az egyik tesztszerveremről:

$ 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

Itt látható, hogy ezt a fájlt 2019. április 25-én hozták létre, amikor telepítettem a rendszert. Az én fájlomat /etc/fstab utoljára 2019. május 16-án módosították, és minden egyéb attribútumot körülbelül ugyanakkor módosítottak.

Ha másolom /etc/fstab az új fájlba, a dátumok változnak, jelezve, hogy ez egy új fájl:

$ 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

De ha csak átnevezem a fájlt, anélkül, hogy módosítanám a tartalmát, a Linux csak a fájl módosítási idejét frissíti:

$ 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

Ezek az időbélyegek nagyon hasznosak bizonyos Unix-programok számára. Például a biff egy olyan program, amely értesít a beérkező új e-mailekről. Manapság kevés ember használja. biff, de abban az időben, amikor a postaládák helyben voltak a rendszeren, a biff széles körben használták.

Hogyan tudja a program, hogy van-e új e-mailje a beérkezőben? A biff összehasonlítja az utolsó módosítás idejét (amikor a beérkező e-mail fájlt egy új e-mail üzenet frissítette) és az utolsó hozzáférés idejét (amikor utoljára olvasta az e-mailjeit). Ha a módosítás később történt, mint a hozzáférés, akkor a biff észleli, hogy új levél érkezett, és értesít róla. A Mutt levelezőklient hasonlóan működik.

Az utolsó hozzáférési időbélyeg is hasznos, ha statisztikákat kell gyűjtenie a fájlrendszer használatáról és optimalizálnia a teljesítményt. A rendszergazdáknak tudniuk kell, hogy mely objektumokhoz férnek hozzá, hogy ennek megfelelően optimalizálják a fájlrendszert.

De a legtöbb modern program számára ez a jelzés már nem szükséges, ezért felmerült a javaslat, hogy ne használják. 2007-ben Linus Torvalds és néhány más kernel fejlesztő az atime-t vitatták meg a teljesítményproblémák kontextusában. A Linux kernel fejlesztője, Ingo Molnár a következő megjegyzést tette az atime-ra és az ext3 fájlrendszerre:

Elég furcsa, hogy minden asztali számítógép és Linux szerver észlelhető I/O teljesítménycsökkenéssel küzd az atime folyamatos frissítése miatt, holott valójában csak kettő felhasználója van: a tmpwatch [amelyet be lehet állítani, hogy ctime-t használjon, így ez nem nagy probléma] és néhány biztonsági mentési eszköz.

De az emberek továbbra is használnak olyan programokat, amelyeknek szüksége van erre a címkére. Tehát az atime eltávolítása megzavarja a működésüket. A Linux kernel fejlesztőinek nem szabad korlátozniuk a felhasználó szabadságát.

Salamonok áldása

A Linux disztribúciók számos alkalmazást tartalmaznak, és ezen kívül a felhasználók más programokat is letölthetnek és telepíthetnek szükségleteik szerint. Ez a nyílt forráskódú operációs rendszer kulcsfontosságú előnye. De ez bonyolultabbá teszi a fájlrendszer teljesítményének optimalizálását. Az erőforrás-igényes összetevők eltávolítása zavarokat okozhat a rendszer működésében.

Kompromisszumként a Linux kernel fejlesztői bevezették az új relaytime opciót, amely célja a teljesítmény és a kompatibilitás közötti egyensúly megteremtése:

Az atime csak akkor frissül, ha a korábbi hozzáférési idő kevesebb, mint a jelenlegi módosítási vagy státuszmódosítási idő... A Linux 2.6.30-tól kezdődően a kernel alapértelmezés szerint ezt az opciót használja (ha nem van megadva noatime)... Ezen kívül a Linux 2.6.30-tól kezdődően a fájl utolsó hozzáférési ideje mindig frissül, ha azt több mint 1 napja nem használták.

A modern Linux rendszerek (a 2009-ben kiadott Linux 2.6.30-tól kezdődően) már használják a relaytime-t, ami jelentős teljesítménynövekedést kell, hogy biztosítson. Ez azt jelenti, hogy nem kell konfigurálnod a fájlt, /etc/fstab, és a relaytime-mal megbízhatsz az alapértelmezett értékben.

A rendszer teljesítményének növelése noatime használatával

De ha maximalizálni szeretnéd a teljesítményt, az atime letiltása még mindig lehetséges.

A teljesítménybeli változás nagyon gyors modern lemezeken (mint például NVME vagy Fast SSD) nem feltétlenül lesz nagyon észlelhető, de ott van egy kis növekedés.

Ha tudod, hogy nem használsz olyan szoftvert, amelynek szüksége van az atime-ra, akkor egy kicsit növelheted a teljesítményt, ha bekapcsolod a noatime opciót a fájlban. /etc /fstabEzután a kernel nem fogja folyamatosan frissíteni az atime-ot. Használja a noatime opciót a fájlrendszer csatolásakor:

/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

A változtatások a következő újraindításkor lépnek érvénybe.

Hirdetés

Szüksége van egy szerverre a webhely üzemeltetéséhez? Cégünk kínál megbízható szervereket napi vagy egyszeri díjjal, minden szerver 500 Mbps internetkapcsolatra van csatlakoztatva, és ingyenesen védett a DDoS-támadások ellen!

Hogyan és miért növeli a noatime opció a Linux rendszerek teljesítményét

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster