Atime ažuriranje utiče na performanse sistema. Šta se tamo događa i što učiniti u vezi s tim - pročitajte članak.
Kad god ažuriram Linux na svom kućnom računaru, moram riješiti određene probleme. Tokom godina, ovo je postalo navika: pravim rezervnu kopiju svojih fajlova, brišem sistem, instaliram sve ispočetka, vraćam svoje fajlove, a zatim ponovo instaliram svoje omiljene aplikacije. Također mijenjam sistemske postavke kako mi odgovara. Ponekad je potrebno previše vremena. Nedavno sam se zapitao da li mi treba ova glavobolja.
vrijeme je jedna od tri vremenske oznake za datoteke u Linuxu (više o tome kasnije). Konkretno, pitao sam se da li bi i dalje bilo dobro onemogućiti atime na novijim Linux sistemima. Pošto se atime ažurira svaki put kada se pristupi datoteci, shvatio sam da ima značajan uticaj na performanse sistema.
Nedavno sam nadogradio na Fedoru 32 i, iz navike, počeo sam onemogućavanjem vremena. Pomislio sam: da li mi to zaista treba? Odlučio sam da proučim ovu temu i evo šta sam iskopao.
Malo o vremenskim oznakama fajlova
Da biste to shvatili, morate napraviti korak unazad i zapamtiti nekoliko stvari o Linux sistemima datoteka i kako kernel označava vremenske oznake datoteka i direktorija. Možete vidjeti posljednji izmijenjeni datum datoteka i direktorija pokretanjem naredbe ls -l (dugo) ili jednostavno gledanjem informacija o tome u upravitelju datoteka. Ali iza scene, Linux kernel prati nekoliko vremenskih oznaka za datoteke i direktorije:
- Kada je fajl zadnji put izmijenjen (mtime)
- Kada su posljednji put promijenjena svojstva datoteke i metapodaci (ctime)
- Kada je datoteci posljednji put pristupano (vrijeme)
- Možete koristiti naredbu stanjeza pregled informacija o datoteci ili direktoriju. Evo fajla / etc / fstab sa jednog od mojih test servera:
$ 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
Ovdje možete vidjeti da je ovaj fajl kreiran 25. aprila 2019. godine kada sam instalirao sistem. Moj fajl / etc / fstab posljednji put je izmijenjen 16. maja 2019., a svi ostali atributi su promijenjeni otprilike u isto vrijeme.
Ako kopiram / etc / fstab na novu datoteku, datumi se mijenjaju kako bi ukazali da se radi o novom fajlu:
$ 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
Ali ako samo preimenujem datoteku bez promjene njenog sadržaja, Linux će ažurirati samo vrijeme kada je datoteka modificirana:
$ 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
Ove vremenske oznake su vrlo korisne za određene Unix programe. Na primjer, biff je program koji vas obavještava kada postoji nova poruka u vašoj e-pošti. Danas malo ljudi koristi
Kako program zna da li imate novu poštu u inboxu? biff upoređuje vrijeme posljednje izmjene (kada je inbox datoteka ažurirana novom porukom e-pošte) i vrijeme posljednjeg pristupa (posljednji put kada ste pročitali svoju e-poštu). Ako se promjena dogodila kasnije od pristupa, tada će biff shvatiti da je stiglo novo pismo i obavijestit će vas o tome. Mutt klijent e-pošte radi na skoro isti način.
Posljednja vremenska oznaka pristupa je također korisna ako trebate prikupiti statistiku korištenja sistema datoteka i podesiti performanse. Administratori sistema moraju znati kojim objektima se pristupa kako bi mogli u skladu s tim konfigurirati sistem datoteka.
Ali većini modernih programa ova oznaka više nije potrebna, pa je postojao prijedlog da se ona ne koristi. Godine 2007, Linus Torvalds i nekoliko drugih programera kernela su povremeno raspravljali u kontekstu problema performansi. Programer Linux kernela Ingo Molnar rekao je sljedeće o atimeu i ext3 sistemu datoteka:
„Prilično je čudno da svaki Linux desktop i server trpi primjetnu degradaciju I/O performansi zbog stalnih ažuriranja vremena, iako postoje samo dva prava korisnika: tmpwatch [koji se može konfigurirati da koristi ctime, tako da to nije veliki problem] i neke rezervne alate."
Ali ljudi i dalje koriste neke programe kojima je potrebna ova oznaka. Dakle, uklanjanje vremena će narušiti njihovu funkcionalnost. Programeri Linux kernela ne bi trebali kršiti slobodu korisnika.
Solomonovo rešenje
Postoje mnoge aplikacije uključene u Linux distribucije, a osim toga, korisnici mogu preuzeti i instalirati druge programe prema svojim potrebama. Ovo je ključna prednost otvorenog koda OS. Ali to otežava optimizaciju performansi vašeg sistema datoteka. Uklanjanje resursno intenzivnih komponenti može poremetiti sistem.
Kao kompromis, programeri jezgre Linuxa uveli su novu opciju relaytimea koja ima za cilj da uspostavi ravnotežu između performansi i kompatibilnosti:
atime se ažurira samo ako je prethodno vrijeme pristupa manje od trenutnog vremena modifikacije ili promjene statusa... Od Linuxa 2.6.30, kernel koristi ovu opciju po defaultu (osim ako nije specificirano noatime)... Također, od Linuxa 2.6.30 . 1, vrijeme posljednjeg pristupa datoteci se uvijek ažurira ako je starija od XNUMX dana.
Moderni Linux sistemi (od Linuxa 2.6.30, objavljenog 2009.) već koriste vrijeme releja, što bi trebalo dati zaista veliko povećanje performansi. To znači da ne morate konfigurirati datoteku / etc / fstab, a sa relaytimeom možete se osloniti na zadano.
Poboljšanje performansi sistema uz noatime
Ali ako želite da podesite svoj sistem kako biste postigli maksimalne performanse, onemogućavanje vremena je i dalje moguće.
Promjena performansi možda neće biti primjetna na vrlo brzim modernim diskovima (kao što su NVME ili Fast SSD), ali postoji mali porast.
Ako znate da ne koristite softver koji zahtijeva atime, možete malo poboljšati performanse tako što ćete omogućiti opciju noatime u datoteci /etc/fstab. Nakon ovoga, kernel se neće stalno ažurirati. Koristite opciju noatime kada montirate sistem datoteka:
/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
Promjene će stupiti na snagu sljedeći put kada ponovo pokrenete sistem.
O pravima reklame
Da li vam je potreban server za hostovanje vaše web stranice? Naša kompanija nudi
izvor: www.habr.com