Aktualizácia Atime ovplyvňuje výkon systému. Čo sa tam deje a čo s tým robiť - prečítajte si článok.
Vždy, keď aktualizujem Linux na svojom domácom počítači, musím vyriešiť určité problémy. V priebehu rokov sa to stalo zvykom: zálohujem svoje súbory, vymažem systém, nainštalujem všetko od začiatku, obnovím svoje súbory a potom preinštalujem svoje obľúbené aplikácie. Tiež si mením nastavenia systému podľa seba. Niekedy to zaberie príliš veľa času. A nedávno som premýšľal, či potrebujem túto bolesť hlavy.
čas je jednou z troch časových pečiatok pre súbory v systéme Linux (viac o tom neskôr). Najmä ma zaujímalo, či by bolo stále dobré vypnúť atime na novších systémoch Linux. Keďže atime sa aktualizuje pri každom prístupe k súboru, uvedomil som si, že to má významný vplyv na výkon systému.
Nedávno som upgradoval na Fedoru 32 a zo zvyku som začal vypnutím atime. Pomyslel som si: naozaj to potrebujem? Rozhodol som sa naštudovať si túto problematiku a toto som vyhrabal.
Trochu o časových pečiatkach súborov
Aby ste na to prišli, musíte urobiť krok späť a zapamätať si niekoľko vecí o súborových systémoch Linuxu a o tom, ako jadro označuje súbory a adresáre časovými značkami. Spustením príkazu môžete vidieť dátum poslednej zmeny súborov a adresárov ls -l (dlhá) alebo jednoducho pohľadom na informácie o ňom v správcovi súborov. Ale v zákulisí linuxové jadro sleduje niekoľko časových pečiatok pre súbory a adresáre:
- Kedy bol súbor naposledy upravený (mtime)
- Kedy boli naposledy zmenené vlastnosti súboru a metadáta (ctime)
- Kedy bol súbor naposledy použitý (atime)
- Môžete použiť príkaz stavna zobrazenie informácií o súbore alebo adresári. Tu je súbor / Etc / fstab z jedného z mojich testovacích serverov:
$ 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
Tu môžete vidieť, že tento súbor bol vytvorený 25. apríla 2019, keď som nainštaloval systém. Môj súbor / Etc / fstab bol naposledy upravený 16. mája 2019 a všetky ostatné atribúty boli zmenené približne v rovnakom čase.
Ak skopírujem / Etc / fstab do nového súboru sa dátumy zmenia, aby indikovali, že ide o nový súbor:
$ 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 ak len premenujem súbor bez zmeny jeho obsahu, Linux aktualizuje iba čas, kedy bol súbor upravený:
$ 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
Tieto časové pečiatky sú veľmi užitočné pre určité unixové programy. Napríklad biff je program, ktorý vás upozorní, keď je vo vašom e-maile nová správa. V súčasnosti ho používa málokto
Ako program zistí, či máte v doručenej pošte novú poštu? biff porovnáva čas poslednej úpravy (keď bol súbor doručenej pošty aktualizovaný novou e-mailovou správou) a čas posledného prístupu (kedy ste naposledy čítali svoj e-mail). Ak zmena nastala neskôr ako prístup, potom biff pochopí, že prišiel nový list a upozorní vás na to. E-mailový klient Mutt funguje veľmi podobne.
Časová pečiatka posledného prístupu je tiež užitočná, ak potrebujete zhromaždiť štatistiky používania súborového systému a vyladiť výkon. Správcovia systému potrebujú vedieť, ku ktorým objektom sa pristupuje, aby mohli zodpovedajúcim spôsobom nakonfigurovať systém súborov.
Ale väčšina moderných programov už toto označenie nepotrebuje, preto padol návrh nepoužívať ho. V roku 2007 Linus Torvalds a niekoľko ďalších vývojárov jadra diskutovali o čase v kontexte problému s výkonom. Vývojár linuxového jadra Ingo Molnar sa o atime a súborovom systéme ext3 vyjadril nasledovne:
„Je celkom zvláštne, že každý linuxový desktop a server trpí znateľným znížením I/O výkonu v dôsledku neustálych aktualizácií atime, aj keď existujú iba dvaja skutoční používatelia: tmpwatch [ktorý sa dá nakonfigurovať na používanie ctime, takže to nie je veľký problém] a nejaké zálohovacie nástroje."
Ľudia však stále používajú niektoré programy, ktoré toto označenie potrebujú. Takže odstránenie atime naruší ich funkčnosť. Vývojári jadra Linuxu by nemali porušovať slobodu používateľov.
Šalamúnovo riešenie
V linuxových distribúciách je veľa aplikácií a okrem toho si používatelia môžu stiahnuť a nainštalovať ďalšie programy podľa svojich potrieb. Toto je kľúčová výhoda open source OS. To však sťažuje optimalizáciu výkonu vášho súborového systému. Odstránenie komponentov náročných na zdroje môže narušiť systém.
Ako kompromis vývojári jadra Linuxu zaviedli novú možnosť relaytime, ktorá je určená na dosiahnutie rovnováhy medzi výkonom a kompatibilitou:
atime sa aktualizuje iba vtedy, ak je predchádzajúci prístupový čas kratší ako aktuálny čas modifikácie alebo zmeny stavu... Od Linuxu 2.6.30 jadro používa túto možnosť štandardne (pokiaľ nie je špecifikované noatime)... Tiež od Linuxu 2.6.30 . 1, čas posledného prístupu k súboru sa vždy aktualizuje, ak je starší ako XNUMX deň.
Moderné linuxové systémy (od Linuxu 2.6.30, vydaného v roku 2009) už využívajú relaytime, čo by malo poskytnúť skutočne veľké zvýšenie výkonu. To znamená, že súbor nemusíte konfigurovať / Etc / fstaba s reléovým časom sa môžete spoľahnúť na predvolený.
Zlepšenie výkonu systému pomocou noatime
Ak však chcete vyladiť svoj systém na maximálny výkon, vypnutie funkcie atime je stále možné.
Na veľmi rýchlych moderných diskoch (napríklad NVME alebo Fast SSD) nemusí byť výkonová zmena príliš viditeľná, ale je tam malý nárast.
Ak viete, že nepoužívate softvér, ktorý vyžaduje atime, môžete mierne zlepšiť výkon povolením možnosti noatime v súbore /etc/fstab. Potom sa jadro nebude neustále aktualizovať. Pri pripájaní súborového systému použite možnosť 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
Zmeny sa prejavia pri ďalšom reštarte.
O právach reklamy
Potrebujete server na hosťovanie vašich webových stránok? Naša spoločnosť ponúka
Zdroj: hab.com