Kuidas ja miks noatime valik Linuxi süsteemide jõudlust parandab

Atime update mõjutab süsteemi jõudlust. Mis seal toimub ja mida sellega teha - loe artiklist.

Kuidas ja miks noatime valik Linuxi süsteemide jõudlust parandab
Kui ma oma koduarvutis Linuxi värskendan, pean lahendama teatud probleemid. Aastate jooksul on see muutunud harjumuseks: varundan oma failid, pühin süsteemi, installin kõik nullist, taastan failid ja installin seejärel uuesti oma lemmikrakendused. Muudan ka süsteemiseadeid enda jaoks sobivaks. Mõnikord võtab see liiga palju aega. Ja hiljuti mõtlesin, kas mul on seda peavalu vaja.

aeg on üks kolmest Linuxi failide ajatemplist (sellest lähemalt hiljem). Eelkõige mõtlesin, kas oleks ikka hea mõte uuemates Linuxi süsteemides aeg-ajalt keelata. Kuna atime'i värskendatakse iga kord, kui failile juurde pääseb, mõistsin, et see mõjutab oluliselt süsteemi jõudlust.
Täiendasin hiljuti versioonile Fedora 32 ja alustasin harjumusest teatud aja keelamisega. Mõtlesin: kas mul on seda tõesti vaja? Otsustasin seda teemat uurida ja selle välja kaevasin.

Veidi failide ajatemplitest

Selle väljaselgitamiseks peate astuma sammu tagasi ja jätma meelde mõned asjad Linuxi failisüsteemide ja selle kohta, kuidas kernel faile ja katalooge ajatempli teeb. Failide ja kataloogide viimati muudetud kuupäeva näete käsu käivitamisel ls -l (pikk) või lihtsalt failihalduris selle kohta teavet vaadates. Kuid kulisside taga jälgib Linuxi kernel failide ja kataloogide mitut ajatemplit:

  1. Millal faili viimati muudeti (mtime)
  2. Millal viimati faili atribuute ja metaandmeid muudeti (ctime)
  3. Millal failile viimati juurde pääseti (ajal)
  4. Võite kasutada käsku riikfaili või kataloogi teabe vaatamiseks. Siin on fail / etc / fstab ühest minu testserverist:

$ 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

Siin näete, et see fail loodi 25. aprillil 2019, kui ma süsteemi installisin. Minu fail / etc / fstab viimati muudeti 16. mail 2019 ja kõiki teisi atribuute muudeti umbes samal ajal.

Kui ma kopeerin / etc / fstab uude faili, muutuvad kuupäevad, mis näitavad, et tegemist on uue failiga:

$ 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

Aga kui ma lihtsalt nimetan faili ümber ilma selle sisu muutmata, värskendab Linux ainult faili muutmise aega:

$ 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

Need ajatemplid on teatud Unixi programmide jaoks väga kasulikud. Näiteks biff on programm, mis teavitab teid, kui teie meilis on uus sõnum. Tänapäeval kasutavad seda vähesed inimesed biff, kuid ajal, mil postkastid olid süsteemis kohalikud, oli biff üsna levinud.

Kuidas saab programm teada, kas teie postkastis on uusi kirju? biff võrdleb viimati muudetud aega (kui postkasti faili uuendati uue meilisõnumiga) ja viimast juurdepääsuaega (viimane kord, kui lugesite oma meili). Kui muudatus toimus juurdepääsust hiljem, saab biff aru, et uus kiri on saabunud ja teavitab teid sellest. Mutti meiliklient töötab samamoodi.

Viimane juurdepääsu ajatempel on kasulik ka siis, kui teil on vaja koguda failisüsteemi kasutusstatistikat ja häälestada jõudlust. Süsteemiadministraatorid peavad teadma, millistele objektidele juurde pääsetakse, et nad saaksid failisüsteemi vastavalt konfigureerida.

Kuid enamik kaasaegseid programme seda silti enam ei vaja, mistõttu tehti ettepanek seda mitte kasutada. 2007. aastal arutasid Linus Torvalds ja mitmed teised kerneli arendajad aeg-ajalt jõudlusprobleemi kontekstis. Linuxi kerneli arendaja Ingo Molnar märkis aja ja ext3 failisüsteemi kohta järgmise punkti:

"On üsna kummaline, et iga Linuxi töölaud ja server kannatab pidevate ajakohaste värskenduste tõttu märgatava I/O jõudluse halvenemise all, kuigi tegelikke kasutajaid on ainult kaks: tmpwatch [mida saab konfigureerida kasutama ctime, nii et see pole suur probleem] ja mõned varundustööriistad."

Kuid inimesed kasutavad endiselt mõnda programmi, mis seda silti vajavad. Nii et aeg-ajalt eemaldamine rikub nende funktsionaalsust. Linuxi kerneli arendajad ei tohiks kasutaja vabadust rikkuda.

Saalomoni lahendus

Linuxi distributsioonides on palju rakendusi ja lisaks saavad kasutajad alla laadida ja installida muid programme vastavalt oma vajadustele. See on avatud lähtekoodiga OS-i peamine eelis. Kuid see muudab failisüsteemi jõudluse optimeerimise keeruliseks. Ressursimahukate komponentide eemaldamine võib süsteemi häirida.

Kompromissina on Linuxi kerneli arendajad kasutusele võtnud uue relaytime suvandi, mis on mõeldud jõudluse ja ühilduvuse vahelise tasakaalu saavutamiseks:

atime uuendatakse ainult siis, kui eelmine juurdepääsuaeg on lühem kui praegune muutmise või oleku muutmise aeg... Alates Linuxi versioonist 2.6.30 kasutab kernel seda valikut vaikimisi (kui pole määratud noatime)... Samuti, kuna Linux 2.6.30 . 1, värskendatakse alati faili viimast juurdepääsuaega, kui see on üle XNUMX päeva vana.

Kaasaegsed Linuxi süsteemid (alates Linux 2.6.30, välja antud 2009. aastal) kasutavad juba releeaega, mis peaks andma jõudlusele tõeliselt suure tõuke. See tähendab, et te ei pea faili konfigureerima / etc / fstab, ja releeaja abil saate vaikeväärtusele tugineda.

Süsteemi jõudluse parandamine noatime'iga

Kuid kui soovite oma süsteemi maksimaalse jõudluse saavutamiseks häälestada, on aeg-ajalt keelamine siiski võimalik.

Väga kiiretel kaasaegsetel draividel (näiteks NVME või Fast SSD) ei pruugi jõudluse muutus eriti märgatav olla, kuid seal on väike tõus.

Kui teate, et te ei kasuta tarkvara, mis nõuab aega, saate jõudlust veidi parandada, lubades failis suvandi noatime /etc/fstab. Pärast seda kernelit pidevalt ei värskendata. Kasutage failisüsteemi paigaldamisel suvandit 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

Muudatused jõustuvad järgmisel taaskäivitamisel.

Reklaamide õiguste kohta

Kas vajate oma veebisaidi hostimiseks serverit? Meie firma pakub usaldusväärsed serverid igapäevase või ühekordse maksega on iga server ühendatud 500 megabitise Interneti-kanaliga ja on tasuta kaitstud DDoS rünnakute eest!

Kuidas ja miks noatime valik Linuxi süsteemide jõudlust parandab

Allikas: www.habr.com

Lisa kommentaar