Atime'i uuendamine mõjutab süsteemi jõudlust. Mis seal toimub ja mida sellega teha — loe artiklist.

Iga kord, kui ma uuendan Linuxi oma koduarvutis, pean tegelema teatud ülesannetega. Aastatega on sellest saanud harjumus: teen varukoopiaid oma failidest, kustutan süsteemi, paigaldan kõik nullist, taastan oma failid ja seejärel installin uuesti kõik oma lemmikrakendused. Muudan ka süsteemi seadeid enda soovide järgi. Mõnikord võtab see liiga palju aega. Ja hiljuti mõtlesin, kas see vaev on üldse vajalik.
atime — üks kolmest ajatemplist failide jaoks Linuxis (sellest kirjutame hiljem). Erakordselt küsisin endalt, kas peaksin atime'i ikka veel uuemates Linuxi süsteemides keelama. Kuna atime uuendatakse iga kord, kui failile ligi pääsetakse, mõistsin, et see avaldab märkimisväärset mõju süsteemi jõudlusele.
Hiljuti uuendasin Fedora 32-le ja harjumusest hakkasin atime'i keelama. Mõtlesin: kas mul on seda üldse vaja? Otsustasin uurida ja siin on minu leid.
Veidi failide ajatemplist
Kuna arusaamine nõuab mõningast tagasitee astumist ja meelde tuletamist mitmest asjast Linuxi failisüsteemide ning sellest, kuidas kernel saadab failidele ja kaustadele ajatempleid. Viimase muudetud kuupäeva nägemiseks failidel ja kaustadel võite kasutada käsku ls -l (pikendatud) või lihtsalt vaadates failihalduri teavet. Kuid lava taga jälgib Linuxi kerneli mitmeid ajatempleid failide ja kaustade jaoks:
- Millal faili viimati muudetud (mtime)
- Millal faili omadusi ja metaandmeid viimati muudetud (ctime)
- Millal faili viimati kutsuti (atime)
- Saate kasutada käsku stat, et vaadata faili või kausta andmeid. Siin on faili /etc/fstab ühelt minu testserverilt:
$ 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 -0500Siit on näha, et see fail loodi 25. aprillil 2019, mil ma süsteemi installisin. Minu fail /etc/fstab viimati muudeti 16. maitel 2019. aastal, ja kõik muud atribuudid muudeti umbes samal ajal.
Kui ma kopeerin /etc/fstab uude faili, kuupäevad muutuvad, näidates, et see on uus fail:
$ sudo cp fstab fstab.bak
$ stat fstab.bak
Fail: fstab.bak
Suurus: 261 Plokid: 8 IO blok: 4096 tavaline fail
Seade: b303h/45827d Inode: 2105664 Lingid: 1
Juurdepääs: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Kontekst: unconfined_u:object_r:etc_t:s0
Juurdepääs: 2020-05-12 17:53:58.442659986 -0500
Muuda: 2020-05-12 17:53:58.443659981 -0500
Muuda: 2020-05-12 17:53:58.443659981 -0500
Loomine: 2020-05-12 17:53:58.442659986 -0500Aga kui ma lihtsalt ümber nimetan faili, ilma selle sisu muutmata, uuendab Linux ainult faili muutmise aega:
$ sudo mv fstab.bak fstab.tmp
$ stat fstab.tmp
Fail: fstab.tmp
Suurus: 261 Plokid: 8 IO blok: 4096 tavaline fail
Seade: b303h/45827d Inode: 2105664 Lingid: 1
Juurdepääs: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Kontekst: unconfined_u:object_r:etc_t:s0
Juurdepääs: 2020-05-12 17:53:58.442659986 -0500
Muuda: 2020-05-12 17:53:58.443659981 -0500
Muuda: 2020-05-12 17:54:24.576508232 -0500
Loomine: 2020-05-12 17:53:58.442659986 -0500Need ajatempli on väga kasulikud teatud Unix-programmide jaoks. Näiteks, biff — see on programm, mis teavitab teid uue e-posti sõnumi saabumisest. Praegu kasutavad seda vähesed , aga nendel päevadel, mil postkastid olid süsteemi jaoks kohalikud, oli biff üsna laialdaselt levinud.
Kuidas programm teab, kas teie postkastis on uus post? Biff võrdleb viimase muudatuse aega (kui sisendfaili muudeti uue e-kirjaga) ja viimase juurde pääsu aega (viimane kord, kui te oma e-kirju lugesite). Kui muudatus on toimunud hiljem, kui ligi pääsemine, siis biff mõistab, et uus kiri on saabunud, ja teavitab teid sellest. Postikliendil Mutt on sarnane tööpõhimõte.
Viimase juurde pääsu ajatempli teave on kasulik, kui peate koguma failisüsteemi kasutamise statistikat ja kohandama jõudlust. Süsteemihaldurid peavad teadma, millistele objektidele ligipääsu on saadud, et saaksid failisüsteemi vastavalt seadistada.
Kuid enamik kaasaegseid programme ei vaja seda märget enam, seetõttu tehti ettepanek seda mitte kasutada. 2007. aastal arutasid Linus Torvalds ja mõned teised tuuma arendajad atime'i seoses jõudlusprobleemiga. Linuxi tuuma arendaja Ingo Molnar tegi atime'i ja failisüsteemi ext3 kohta järgmise märgiku:
„On üsna kummaline, et iga Linuxi töölaua ja serveri süsteem kannatab märgatava sisendi-väljundi jõudluse languse all pideva atime'i uuendamise tõttu, kuigi tegelikke kasutajaid on ainult kaks: tmpwatch [mida saab seadistada ctime'i kasutama, nii et see ei ole suur probleem] ja mõned varundustooted.”
Kuid inimesed kasutavad endiselt teatud programme, mis vajavad seda märget. Seega rikutakse atime'i eemaldamisega nende tööd. Linuxi tuuma arendajad ei tohi kasutaja vabadust piirata.
Solomoni lahendus
Linuxi distributsioonid sisaldavad mitmeid rakendusi ning kasutajad saavad vastavalt oma vajadustele laadida ja installida ka teisi programme. See on avatud lähtekoodiga operatsioonisüsteemi peamine eelis. Kuid see muudab teie failisüsteemi jõudluse optimeerimise keerulisemaks. Ressursimahukate komponentide eemaldamine võib häirida süsteemi tööd.
Kompromissina on Linuxi tuumaarendajad lisanud uue relaytime'i valiku, mis püüab tasakaalu saavutada jõudluse ja ühilduvuse vahel:
atime uuendatakse ainult siis, kui eelmine juurdepääsuaeg on väiksem kui praegune modifitseerimise või oleku muutmise aeg … Alates Linux 2.6.30-st kasutab tuum vaikimisi seda valikut (kui ei ole määratud noatime) … Samuti, alates Linux 2.6.30-st uuendatakse faili viimase juurdepääsu aega alati, kui see on üle 1 päeva.
Kaasaegsed Linuxi süsteemid (alates Linux 2.6.30-st, mis ilmus 2009. aastal) kasutavad juba relaytime'i, mis peaks tooma tõeliselt suure jõudlusparanduse. See tähendab, et teil ei ole vaja faili seadistada, /etc/fstab, ja relaytime'i abil saate toetuda vaikimisi väärtusele.
Süsteemi jõudluse tõstmine noatime abil
Kuid kui soovite oma süsteemi seadistada maksimaalse jõudluse saavutamiseks, on atime väljalülitamine endiselt võimalik.
Jõudluse muudatus ei pruugi olla väga märgatav väga kiiretel kaasaegsetel kettadel (näiteks NVME või Fast SSD), kuid seal on väike tõus.
Kui teate, et te ei kasuta tarkvara, mis nõuab atime'i, saate jõudlust veidi parandada, lisades noatime valiku faili /etc /fstab. Pärast seda ei uuendata atime'i pidevalt. Kasutage failisüsteemi monteerimisel noatime valikut:
/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 0Muutused jõustuvad järgmisel taaskäivitamisel.
Reklaami õigustes
Kas vajate veebisaidi hostimiseks serverit? Meie ettevõte pakub päevase või ühekordse maksmisega, iga server on ühendatud 500 Megabiti internetiühendusega ja tasuta kaitstud DDoS-rünnakute eest!
Allikas: habr.com
