Miten ja miksi noatime-vaihtoehto parantaa Linux-järjestelmien suorituskykyä

Atime-päivitys vaikuttaa järjestelmän suorituskykyyn. Mitä siellä tapahtuu ja mitä tehdä asialle - lue artikkeli.

Miten ja miksi noatime-vaihtoehto parantaa Linux-järjestelmien suorituskykyä
Aina kun päivitän Linuxin kotitietokoneellani, minun on ratkaistava tiettyjä ongelmia. Vuosien mittaan tästä on tullut tapa: varmuuskopioin tiedostoni, pyyhin järjestelmän, asenna kaiken alusta alkaen, palautan tiedostoni ja asensen sitten uudelleen suosikkisovellukseni. Muutan myös järjestelmäasetuksia itselleni sopiviksi. Joskus se vie liikaa aikaa. Ja äskettäin mietin, tarvitsenko tätä päänsärkyä.

aika on yksi kolmesta tiedostojen aikaleimasta Linuxissa (lisää tästä myöhemmin). Erityisesti mietin, olisiko silti hyvä idea poistaa käytöstä uudemmissa Linux-järjestelmissä. Koska atime päivitetään aina, kun tiedostoa käytetään, ymmärsin, että sillä on merkittävä vaikutus järjestelmän suorituskykyyn.
Päivitin äskettäin Fedora 32:een ja aloitin tottumuksesta poistamalla käytöstä joskus. Ajattelin: tarvitsenko sitä todella? Päätin tutkia tätä asiaa ja tämän kaivoin esiin.

Hieman tiedostojen aikaleimoista

Selvittääksesi sen, sinun on otettava askel taaksepäin ja muistettava muutamia asioita Linux-tiedostojärjestelmistä ja siitä, kuinka ydin leimaa tiedostoja ja hakemistoja. Näet tiedostojen ja hakemistojen viimeisimmän muokkauspäivämäärän suorittamalla komennon ls -l (pitkä) tai yksinkertaisesti katsomalla tietoja siitä tiedostonhallinnassa. Mutta kulissien takana Linux-ydin seuraa useita tiedostojen ja hakemistojen aikaleimoja:

  1. Milloin tiedostoa muokattiin viimeksi (mtime)
  2. Milloin tiedoston ominaisuuksia ja metatietoja on viimeksi muutettu (ctime)
  3. Milloin tiedostoa on viimeksi käytetty (aika)
  4. Voit käyttää komentoa stattarkastellaksesi tietoja tiedostosta tai hakemistosta. Tässä on tiedosto / Etc / fstab yhdeltä testipalvelimeltani:

$ 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

Täältä näet, että tämä tiedosto luotiin 25. huhtikuuta 2019, kun asensin järjestelmän. Minun tiedostoni / Etc / fstab muokattu viimeksi 16. toukokuuta 2019, ja kaikkia muita määritteitä muutettiin suunnilleen samaan aikaan.

Jos kopioin / Etc / fstab uuteen tiedostoon, päivämäärät muuttuvat osoittamaan, että kyseessä on uusi tiedosto:

$ 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

Mutta jos nimeän tiedoston uudelleen muuttamatta sen sisältöä, Linux päivittää vain tiedoston muokkausajan:

$ 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

Nämä aikaleimat ovat erittäin hyödyllisiä tietyille Unix-ohjelmille. Esimerkiksi biff on ohjelma, joka ilmoittaa sinulle, kun sähköpostiisi tulee uusi viesti. Nykyään harvat käyttävät nyrkinisku, mutta päivinä, jolloin postilaatikot olivat järjestelmän paikallisia, biff oli melko yleistä.

Mistä ohjelma tietää, onko postilaatikossasi uutta sähköpostia? biff vertaa viimeistä muokkausaikaa (milloin Saapuneet-kansioon päivitettiin uusi sähköpostiviesti) ja viimeistä käyttöaikaa (viimeisen kerran, kun luit sähköpostisi). Jos muutos tapahtui myöhemmin kuin pääsy, niin biff ymmärtää, että uusi kirje on saapunut ja ilmoittaa sinulle siitä. Mutt-sähköpostiohjelma toimii pitkälti samalla tavalla.

Viimeinen käyttöaikaleima on hyödyllinen myös, jos haluat kerätä tiedostojärjestelmän käyttötilastoja ja säätää suorituskykyä. Järjestelmänvalvojien on tiedettävä, mitä objekteja käytetään, jotta he voivat määrittää tiedostojärjestelmän vastaavasti.

Mutta useimmat nykyaikaiset ohjelmat eivät enää tarvitse tätä merkkiä, joten ehdotettiin, että sitä ei käytetä. Vuonna 2007 Linus Torvalds ja useat muut ytimen kehittäjät keskustelivat ajoittain suorituskykyongelman yhteydessä. Linux-ytimen kehittäjä Ingo Molnar teki seuraavan huomion ajasta ja ext3-tiedostojärjestelmästä:

"On aika outoa, että jokainen Linux-työpöytä ja -palvelin kärsii huomattavasta I/O-suorituskyvyn heikkenemisestä jatkuvien päivitysten vuoksi, vaikka todellisia käyttäjiä on vain kaksi: tmpwatch [joka voidaan määrittää käyttämään ctimea, joten se ei ole suuri ongelma] ja joitakin varmuuskopiointityökaluja."

Mutta ihmiset käyttävät edelleen joitain ohjelmia, jotka tarvitsevat tämän merkinnän. Joten poistaminen ajoittain rikkoo niiden toiminnallisuuden. Linux-ytimen kehittäjien ei pitäisi loukata käyttäjän vapautta.

Salomon päätös

Linux-jakeluissa on monia sovelluksia ja lisäksi käyttäjät voivat ladata ja asentaa muita ohjelmia tarpeidensa mukaan. Tämä on avoimen lähdekoodin käyttöjärjestelmän keskeinen etu. Mutta tämä vaikeuttaa tiedostojärjestelmän suorituskyvyn optimointia. Resurssiintensiivisten komponenttien poistaminen voi häiritä järjestelmää.

Kompromissina Linux-ytimen kehittäjät ovat ottaneet käyttöön uuden relaytime-vaihtoehdon, jonka tarkoituksena on löytää tasapaino suorituskyvyn ja yhteensopivuuden välillä:

atime päivitetään vain, jos edellinen käyttöaika on lyhyempi kuin nykyinen muokkaus- tai tilanmuutosaika... Linux 2.6.30:sta lähtien ydin käyttää tätä vaihtoehtoa oletuksena (ellei noatimea ole määritetty)... Myös Linux 2.6.30:n jälkeen. 1, tiedoston viimeinen käyttöaika päivitetään aina, jos se on yli XNUMX päivän vanha.

Nykyaikaiset Linux-järjestelmät (vuodesta 2.6.30 julkaistusta Linux 2009:sta lähtien) käyttävät jo relayaikaa, jonka pitäisi parantaa suorituskykyä todella paljon. Tämä tarkoittaa, että sinun ei tarvitse määrittää tiedostoa / Etc / fstab, ja relaytimellä voit luottaa oletusarvoon.

Järjestelmän suorituskyvyn parantaminen noatimella

Mutta jos haluat virittää järjestelmäsi maksimaalisen suorituskyvyn saavuttamiseksi, poistaminen käytöstä on silti mahdollista.

Suorituskyvyn muutos ei ehkä ole kovin havaittavissa erittäin nopeilla nykyaikaisilla asemilla (kuten NVME tai Fast SSD), mutta siellä on pieni kasvu.

Jos tiedät, että et käytä ohjelmistoa, joka vaatii aikaa, voit parantaa suorituskykyä hieman ottamalla käyttöön noatime-vaihtoehdon tiedostossa /etc/fstab. Tämän jälkeen ydin ei päivity jatkuvasti. Käytä noatime-vaihtoehtoa, kun liität tiedostojärjestelmää:

/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

Muutokset tulevat voimaan seuraavan kerran, kun käynnistät laitteen uudelleen.

Mainonnan oikeuksista

Tarvitsetko palvelimen verkkosivustosi isännöintiin? Yrityksemme tarjoaa luotettavia palvelimia Päivittäisellä tai kertamaksulla jokainen palvelin on yhdistetty 500 megabitin Internet-kanavaan ja on suojattu DDoS-hyökkäyksiltä ilmaiseksi!

Miten ja miksi noatime-vaihtoehto parantaa Linux-järjestelmien suorituskykyä

Lähde: will.com

Lisää kommentti