Jak a proč možnost noatime zlepšuje výkon Linux-systémy

Aktualizace Atime ovlivňuje výkon systému. Co se tam děje a co s tím dělat - přečtěte si článek.

Jak a proč možnost noatime zlepšuje výkon Linux-systémy
Pokaždé, když aktualizuji Linux Na svém domácím počítači se musím vypořádat s určitými úkoly. Během let se z toho stal zvyk: zálohuji si soubory, mažu systém, instaluji vše od začátku, obnovím soubory a pak znovu instaluji své oblíbené aplikace. Také si upravuji nastavení systému. Někdy to zabere příliš mnoho času. A nedávno jsem si začal říkat, jestli tuhle bolest hlavy opravdu potřebuji.

Doba — jedno ze tří časových razítek pro soubory v Linux (O tom více později.) Zejména jsem se zamýšlel nad tím, zda má stále cenu deaktivovat atime na novějších systémech. LinuxProtože se atime aktualizuje při každém přístupu k souboru, uvědomil jsem si, že to má významný vliv na výkon systému.
Nedávno jsem upgradoval na Fedoru 32 a ze zvyku jsem začal deaktivací atime. Říkal jsem si: Opravdu to potřebuji? Rozhodl jsem se tuto problematiku nastudovat a toto jsem vyhrabal.

Něco málo o časových razítkách souborů

Abyste tomu porozuměli, musíte se vrátit o krok zpět a připomenout si několik věcí o souborových systémech. Linux a jak jádro přiřazuje časová razítka souborům a adresářům. Datum poslední úpravy souborů a adresářů můžete zobrazit spuštěním příkazu ls -l (dlouhý) nebo jen pohledem na informace o něm ve správci souborů. Ale v zákulisí jádroLinux sleduje více časových razítek pro soubory a adresáře:

  1. Kdy byl soubor naposledy upraven (mtime)
  2. Kdy byly naposledy změněny vlastnosti souboru a metadata (ctime)
  3. Kdy byl soubor naposledy otevřen (atime)
  4. Můžete použít příkaz statpro zobrazení informací o souboru nebo adresáři. Zde je soubor / etc / fstab z jednoho z mých testovacích serverů:

$ 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

Zde vidíte, že tento soubor byl vytvořen 25. dubna 2019, když jsem systém nainstaloval. Můj soubor / etc / fstab byl naposledy upraven 16. května 2019 a všechny ostatní atributy byly změněny přibližně ve stejnou dobu.

Pokud zkopíruji / etc / fstab do nového souboru se data změní, aby indikovala, že se jedná o nový soubor:

$ 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

Ale pokud soubor jen přejmenuji beze změny jeho obsahu, Linux aktualizuje pouze čas úpravy souboru:

$ 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

Tato časová razítka jsou velmi užitečná pro určité unixové programy. Například biff je program, který vás upozorní, když je ve vašem e-mailu nová zpráva. V dnešní době málokdo používá steak, ale v dobách, kdy byly poštovní schránky lokální v systému, byl biff docela běžný.

Jak program pozná, že máte ve schránce novou poštu? biff porovnává čas poslední změny (kdy byl soubor doručené pošty aktualizován o novou e-mailovou zprávu) a čas posledního přístupu (kdy jste naposledy četli svůj e-mail). Pokud ke změně došlo později než při přístupu, pak biff pochopí, že přišel nový dopis, a upozorní vás na to. E-mailový klient Mutt funguje velmi podobně.

Časové razítko posledního přístupu je také užitečné, pokud potřebujete shromáždit statistiky využití souborového systému a vyladit výkon. Správci systému potřebují vědět, ke kterým objektům se přistupuje, aby mohli odpovídajícím způsobem nakonfigurovat systém souborů.

Většina moderních programů však toto označení již nepotřebuje, takže se objevil návrh na jeho zrušení. V roce 2007 Linus Torvalds a několik dalších vývojářů jádra diskutovali o atme v kontextu problému s výkonem. Vývojář jádra Linux Ingo Molnar se k atime a souborovému systému ext3 vyjádřil takto:

„Je docela zvláštní, že každý stolní počítač a server Linux trpí znatelným snížením výkonu I/O v důsledku neustálých aktualizací atime, ačkoli existují pouze dva skuteční uživatelé: tmpwatch [který lze nakonfigurovat pro používání ctime, takže to není velký problém] a některé zálohovací nástroje.

Ale lidé stále používají některé programy, které toto časové razítko vyžadují, takže odstranění atime je poškodí. Vývojáři jádra Linux neměl by zasahovat do svobody uživatele.

Solomonův roztok

V distribucích Linux Součástí je široká škála aplikací a uživatelé si také mohou stáhnout a nainstalovat další programy podle svých potřeb. To je klíčová výhoda operačního systému s otevřeným zdrojovým kódem. Ztěžuje to však optimalizaci výkonu souborového systému. Odebrání komponent náročných na zdroje může narušit výkon systému.

Jako kompromis vývojáři jádra Linux Zavedli jsme novou možnost relaytime, jejímž cílem je zajistit rovnováhu mezi výkonem a kompatibilitou:

Čas přístupu se aktualizuje pouze tehdy, pokud je předchozí čas přístupu kratší než aktuální čas úpravy nebo změny stavu... Počínaje Linux Verze 2.6.30 používá jádro tuto možnost ve výchozím nastavení (pokud není zadáno noatime)… Také počínaje Linux Od verze 2.6.30 se čas posledního přístupu k souboru vždy aktualizuje, pokud je starší než 1 den.

Moderní systémy Linux (počínaje od Linux Verze 2.6.30, vydaná v roce 2009) již používá relaytime, což by mělo poskytnout opravdu velké zvýšení výkonu. To znamená, že soubor nemusíte konfigurovat. / etc / fstab, as reléovým časem se můžete spolehnout na výchozí.

Zlepšení výkonu systému pomocí noatime

Pokud však chcete vyladit svůj systém tak, abyste získali maximální výkon, deaktivace atime je stále možná.

Změna výkonu nemusí být na velmi rychlých moderních discích (jako je NVME nebo Fast SSD) příliš patrná, ale malý nárůst tam je.

Pokud víte, že nepoužíváte software, který vyžaduje atime, můžete výkon mírně zlepšit povolením možnosti noatime v souboru /etc/fstab. Poté se jádro nebude neustále aktualizovat atime. Při připojování souborového systému použijte volbu 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

Změny se projeví při příštím restartu.

Jako reklama

Potřebujete server pro hostování vašeho webu? Naše společnost nabízí spolehlivé servery s denní nebo jednorázovou platbou je každý server připojen k internetovému kanálu 500 megabitů a je zdarma chráněn proti DDoS útokům!

Jak a proč možnost noatime zlepšuje výkon Linux-systémy

Zdroj: www.habr.com

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster