Si dhe pse opsioni noatime përmirëson performancën e sistemeve Linux

Përditësimi Atime ndikon në performancën e sistemit. Çfarë po ndodh atje dhe çfarë të bëni për këtë - lexoni artikullin.

Si dhe pse opsioni noatime përmirëson performancën e sistemeve Linux
Sa herë që përditësoj Linux në kompjuterin tim në shtëpi, më duhet të zgjidh disa probleme. Me kalimin e viteve, kjo është bërë një zakon: bëj kopje rezervë të skedarëve të mi, fshij sistemin, instaloj gjithçka nga e para, rivendos skedarët e mi dhe më pas riinstaloj aplikacionet e mia të preferuara. Unë gjithashtu ndryshoj cilësimet e sistemit për t'iu përshtatur vetes. Ndonjëherë kërkon shumë kohë. Dhe kohët e fundit pyesja veten nëse kisha nevojë për këtë dhimbje koke.

një kohë është një nga tre vulat kohore për skedarët në Linux (më shumë për këtë më vonë). Në veçanti, po pyesja veten nëse do të ishte ende një ide e mirë për të çaktivizuar kohën në sistemet më të fundit Linux. Meqenëse atime përditësohet sa herë që aksesohet skedari, kuptova se ka një ndikim të rëndësishëm në performancën e sistemit.
Kohët e fundit kam përmirësuar në Fedora 32 dhe, pa zakon, fillova duke çaktivizuar kohën. Mendova: a kam vërtet nevojë për të? Vendosa të studioj këtë çështje dhe kjo është ajo që zbulova.

Pak për vulat kohore të skedarëve

Për ta kuptuar atë, duhet të bëni një hap prapa dhe të mbani mend disa gjëra në lidhje me sistemet e skedarëve Linux dhe se si kerneli vulos skedarët dhe drejtoritë. Ju mund të shihni datën e fundit të modifikuar të skedarëve dhe drejtorive duke ekzekutuar komandën ls -l (i gjatë) ose thjesht duke parë informacionin rreth tij në menaxherin e skedarëve. Por prapa skenave, kerneli Linux mban gjurmët e disa vulave kohore për skedarët dhe drejtoritë:

  1. Kur është modifikuar për herë të fundit skedari (mtime)
  2. Kur ishte hera e fundit që u ndryshuan vetitë dhe meta të dhënat e skedarit (ctime)
  3. Kur është aksesuar për herë të fundit në skedar (kohë)
  4. Ju mund të përdorni komandën statpër të parë informacionin rreth një skedari ose drejtorie. Këtu është skedari / Etc / fstab nga një nga serverët e mi të testimit:

$ 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

Këtu mund të shihni se ky skedar është krijuar më 25 Prill 2019 kur instalova sistemin. Dosja ime / Etc / fstab u modifikua për herë të fundit më 16 maj 2019 dhe të gjitha atributet e tjera u ndryshuan në të njëjtën kohë.

Nëse kopjoj / Etc / fstab në një skedar të ri, datat ndryshojnë për të treguar se është një skedar i ri:

$ 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

Por nëse thjesht riemëroj skedarin pa ndryshuar përmbajtjen e tij, Linux do të përditësojë vetëm kohën kur skedari është modifikuar:

$ 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

Këto vula kohore janë shumë të dobishme për disa programe Unix. Për shembull, biff është një program që ju njofton kur ka një mesazh të ri në emailin tuaj. Në ditët e sotme pak njerëz përdorin biff, por në ditët kur kutitë postare ishin lokale të sistemit, biff-i ishte mjaft i zakonshëm.

Si e di programi nëse keni postë të re në kutinë tuaj hyrëse? biff krahason kohën e fundit të modifikuar (kur skedari i kutisë hyrëse është përditësuar me një mesazh të ri email) dhe kohën e fundit të hyrjes (herën e fundit që keni lexuar emailin tuaj). Nëse ndryshimi ka ndodhur më vonë se aksesi, atëherë biff do të kuptojë që një letër e re ka mbërritur dhe do t'ju njoftojë për të. Klienti i postës elektronike Mutt funksionon në të njëjtën mënyrë.

Vula kohore e hyrjes së fundit është gjithashtu e dobishme nëse keni nevojë të mbledhni statistika të përdorimit të sistemit të skedarëve dhe të rregulloni performancën. Administratorët e sistemit duhet të dinë se cilat objekte po aksesohen në mënyrë që të mund të konfigurojnë sistemin e skedarëve në përputhje me rrethanat.

Por shumica e programeve moderne nuk kanë më nevojë për këtë etiketë, kështu që ka pasur një propozim për të mos e përdorur atë. Në vitin 2007, Linus Torvalds dhe disa zhvillues të tjerë të kernelit diskutuan kohën në kontekstin e një problemi të performancës. Zhvilluesi i kernelit Linux Ingo Molnar bëri pikat e mëposhtme në lidhje me kohën dhe sistemin e skedarëve ext3:

“Është mjaft e çuditshme që çdo desktop dhe server Linux pëson degradim të dukshëm të performancës I/O për shkak të përditësimeve të vazhdueshme në kohë, edhe pse ka vetëm dy përdorues të vërtetë: tmpwatch [i cili mund të konfigurohet për të përdorur ctime, kështu që nuk është një problem i madh] dhe disa mjete rezervë."

Por njerëzit ende përdorin disa programe që kanë nevojë për këtë etiketë. Pra, heqja e kohës do të prishë funksionalitetin e tyre. Zhvilluesit e kernelit Linux nuk duhet të cenojnë lirinë e përdoruesit.

Zgjidhja e Solomonit

Ka shumë aplikacione të përfshira në shpërndarjet Linux dhe përveç kësaj, përdoruesit mund të shkarkojnë dhe instalojnë programe të tjera sipas nevojave të tyre. Ky është një avantazh kryesor i një OS me burim të hapur. Por kjo e bën të vështirë optimizimin e performancës së sistemit tuaj të skedarëve. Heqja e komponentëve me burime intensive mund të prishë sistemin.

Si një kompromis, zhvilluesit e kernel Linux kanë prezantuar një opsion të ri të transmetimit që synon të vendosë një ekuilibër midis performancës dhe përputhshmërisë:

atime përditësohet vetëm nëse koha e mëparshme e hyrjes është më e vogël se koha aktuale e modifikimit ose e ndryshimit të statusit... Që nga Linux 2.6.30, kerneli e përdor këtë opsion si parazgjedhje (përveç nëse është specifikuar noatime)... Gjithashtu, që nga Linux 2.6.30 . 1, koha e fundit e aksesit të një skedari përditësohet gjithmonë nëse është më shumë se XNUMX ditë e vjetër.

Sistemet moderne Linux (që nga Linux 2.6.30, i lëshuar në 2009) tashmë përdorin kohën e transmetimit, gjë që duhet të japë një rritje vërtet të madhe të performancës. Kjo do të thotë që nuk keni nevojë të konfiguroni skedarin / Etc / fstab, dhe me kohën e transmetimit mund të mbështeteni në parazgjedhjen.

Përmirësimi i performancës së sistemit me noatime

Por nëse doni të akordoni sistemin tuaj për të marrë performancën maksimale, çaktivizimi i kohës është ende i mundur.

Ndryshimi i performancës mund të mos jetë shumë i dukshëm në disqet moderne shumë të shpejtë (si NVME ose Fast SSD), por ka një rritje të vogël atje.

Nëse e dini që nuk po përdorni softuer që kërkon kohë, mund ta përmirësoni paksa performancën duke aktivizuar opsionin noatime në skedar /etc/fstab. Pas kësaj, kerneli nuk do të përditësohet vazhdimisht në kohë. Përdorni opsionin noatime kur montoni sistemin e skedarëve:

/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

Ndryshimet do të hyjnë në fuqi herën tjetër që të rindizni.

Për të Drejtat e Reklamimit

Keni nevojë për një server për të pritur faqen tuaj të internetit? Kompania jonë ofron serverë të besueshëm me pagesë ditore ose një herë, çdo server lidhet me një kanal interneti prej 500 Megabitësh dhe mbrohet falas nga sulmet DDoS!

Si dhe pse opsioni noatime përmirëson performancën e sistemeve Linux

Burimi: www.habr.com

Shto një koment