Kako i zašto opcija noatime poboljšava performanse Linux sustava

Ažuriranje vremena utječe na performanse sustava. Što se tamo događa i što učiniti u vezi s tim - pročitajte u članku.

Kako i zašto opcija noatime poboljšava performanse Linux sustava
Kad god ažuriram Linux na svom kućnom računalu, moram riješiti određene probleme. S godinama je to postala navika: sigurnosno kopiram svoje datoteke, obrišem sustav, instaliram sve ispočetka, vratim svoje datoteke, zatim ponovo instaliram svoje omiljene aplikacije. Također mijenjam postavke sustava kako sebi odgovaraju. Ponekad je potrebno previše vremena. A nedavno sam se pitao treba li mi ova glavobolja.

Vrijeme je jedna od tri vremenske oznake za datoteke u Linuxu (više o tome kasnije). Konkretno, pitao sam se bi li i dalje bila dobra ideja onemogućiti atime na novijim Linux sustavima. Budući da se atime ažurira svaki put kada se pristupi datoteci, shvatio sam da ima značajan utjecaj na performanse sustava.
Nedavno sam nadogradio na Fedoru 32 i, iz navike, započeo s onemogućavanjem atimea. Pomislio sam: treba li mi stvarno? Odlučio sam proučiti ovo pitanje i ovo je ono što sam iskopao.

Malo o vremenskim oznakama datoteka

Da biste to shvatili, morate se vratiti korak unatrag i sjetiti se nekoliko stvari o Linux datotečnim sustavima i načinu na koji kernel označava vremenske oznake datoteka i direktorija. Možete vidjeti datum zadnje izmjene datoteka i direktorija pokretanjem naredbe ls -l (dugo) ili jednostavno gledajući informacije o tome u upravitelju datotekama. Ali iza kulisa, Linux kernel prati nekoliko vremenskih oznaka za datoteke i direktorije:

  1. Kada je datoteka posljednji put modificirana (mtime)
  2. Kada su posljednji put promijenjena svojstva datoteke i metapodaci (ctime)
  3. Kada je zadnji put pristupljeno datoteci (atime)
  4. Možete koristiti naredbu statza pregled informacija o datoteci ili imeniku. Ovdje je datoteka / Etc / fstab s jednog od mojih testnih poslužitelja:

$ 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 ova datoteka stvorena 25. travnja 2019. kada sam instalirao sustav. Moj dosje / Etc / fstab zadnji put je modificiran 16. svibnja 2019., a svi ostali atributi su promijenjeni otprilike u isto vrijeme.

Ako kopiram / Etc / fstab u novu datoteku, datumi se mijenjaju kako bi označili da je to nova datoteka:

$ 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 izmjene datoteke:

$ 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 vrlo su korisne za određene Unix programe. Na primjer, biff je program koji vas obavještava kada u vašoj e-pošti postoji nova poruka. Danas malo ljudi koristi jak udarac, ali u danima kada su poštanski sandučići bili lokalni za sustav, biff je bio sasvim uobičajen.

Kako program zna imate li novu poštu u svom sandučiću? biff uspoređuje vrijeme posljednje izmjene (kada je datoteka pristigle pošte ažurirana novom porukom e-pošte) i vrijeme posljednjeg pristupa (kada ste posljednji put pročitali svoju e-poštu). Ako se promjena dogodila kasnije od pristupa, biff će razumjeti da je stiglo novo pismo i obavijestit će vas o tome. Mutt klijent e-pošte radi otprilike na isti način.

Vremenska oznaka zadnjeg pristupa također je korisna ako trebate prikupiti statistiku korištenja datotečnog sustava i podesiti performanse. Administratori sustava trebaju znati kojim objektima se pristupa kako bi mogli konfigurirati datotečni sustav u skladu s tim.

Ali većina modernih programa više ne treba ovu oznaku, pa je bilo prijedloga da se ne koristi. Godine 2007. Linus Torvalds i nekoliko drugih programera kernela raspravljali su o vremenu u kontekstu problema performansi. Programer Linux kernela Ingo Molnar iznio je sljedeću točku o atimeu i sustavu datoteka ext3:

"Prilično je čudno da svaka Linux radna površina i poslužitelj trpi primjetno smanjenje I/O performansi zbog stalnih atime ažuriranja, iako postoje samo dva stvarna korisnika: tmpwatch [koji se može konfigurirati da koristi ctime, tako da nije veliki problem] i neki alati za sigurnosno kopiranje."

Ali ljudi još uvijek koriste neke programe koji trebaju ovu oznaku. Stoga će uklanjanje atimea prekinuti njihovu funkcionalnost. Programeri Linux kernela ne bi trebali ugrožavati slobodu korisnika.

Solomonovo rješ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 OS-a otvorenog koda. Ali to otežava optimizaciju performansi vašeg datotečnog sustava. Uklanjanje komponenti koje zahtijevaju velike resurse može poremetiti sustav.

Kao kompromis, programeri Linux kernela uveli su novu opciju relaytime koja je namijenjena uspostavljanju ravnoteže između performansi i kompatibilnosti:

atime se ažurira samo ako je prethodno vrijeme pristupa kraće od trenutne izmjene ili vremena promjene statusa... Od Linuxa 2.6.30, kernel koristi ovu opciju prema zadanim postavkama (osim ako nije navedeno noatime)... Također, od Linuxa 2.6.30 . 1, vrijeme posljednjeg pristupa datoteci uvijek se ažurira ako je starija od XNUMX dana.

Moderni Linux sustavi (od Linuxa 2.6.30, objavljenog 2009.) već koriste relejno vrijeme, što bi trebalo dati stvarno veliko povećanje performansi. To znači da ne morate konfigurirati datoteku / Etc / fstab, a s relaytimeom možete se osloniti na zadanu postavku.

Poboljšanje performansi sustava uz noatime

Ali ako želite podesiti svoj sustav da dobije maksimalnu izvedbu, onemogućavanje atimea je još uvijek moguće.

Promjena performansi možda neće biti jako primjetna na vrlo brzim modernim diskovima (kao što su NVME ili Fast SSD), ali tu postoji malo povećanje.

Ako znate da ne koristite softver koji zahtijeva atime, možete malo poboljšati performanse tako da omogućite opciju noatime u datoteci /etc/fstab. Nakon toga, kernel se neće neprestano ažurirati. Koristite opciju noatime kada montirate datotečni sustav:

/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 ponovno pokrenete sustav.

O pravima oglašavanja

Trebate li poslužitelj za smještaj svoje web stranice? Naša tvrtka nudi pouzdani poslužitelji uz dnevno ili jednokratno plaćanje, svaki poslužitelj je spojen na internetski kanal od 500 megabita i besplatno je zaštićen od DDoS napada!

Kako i zašto opcija noatime poboljšava performanse Linux sustava

Izvor: www.habr.com

Dodajte komentar