PĂ«rditĂ«simi i atime ndikon nĂ« performancĂ«n e sistemit. ĂfarĂ« po ndodh aty dhe çfarĂ« duhet tĂ« bĂ«ni me kĂ«tĂ« - lexoni nĂ« artikull.

Këdo herë që përditësoj Linux në kompjuterin tim shtëpiak, më duhet të zgjidh disa detyra. Me kalimin e viteve kjo është bërë zakon: bëj kopje rezervë të skedarëve të mi, fshij sistemin, instaloj çdo gjë nga e para, rikuperoj skedarët e mi, pastaj riinstaloj aplikacionet e mia të preferuara. Gjithashtu ndjek përshtatjet e mia të sistemit. Ndonjëherë kjo merr shumë kohë. Dhe së fundmi fillova të mendoj, a më nevojitet kjo dhimbje koke.
atime - një nga tre vula temporale për skedarët në Linux (më shumë për këtë më vonë). Në veçanti, po më shkon mendja, a duhet ende ta çaktivizoj atime në sistemet më të fundit të Linux. Duke pasur parasysh se atime përditësohet çdo herë që aksesojmë një skedar, kuptova se ka një ndikim të rëndësishëm në performancën e sistemit.
Së fundmi u përditësova në Fedora 32 dhe nga zakonia fillova me çaktivizimin e atime. U mendova: a më nevojitet ajo në parim? Vendosa të eksploroj këtë çështje dhe këtu është çfarë kam zbuluar.
Pak për vulat temporale të skedarëve
Për të kuptuar, ju nevojitet të bëni një hap prapa dhe të kujtoni disa të dhëna mbi sistemet e skedareve në Linux dhe se si bërthama jep vulat temporale për skedarët dhe katalogët. Ju mund të shihni datën e fundit të ndryshimit të skedarëve dhe katalogëve duke ekzekutuar komandën ls -l (i gjatë) ose thjesht duke parë informacionin mbi këtë në menaxhuesin e skedarëve. Por pas kulisave, bërthama e Linux ndjek disa vulat temporale për skedarët dhe katalogët:
- Kur u modifikua për herë të fundit një skedar (mtime)
- Kur për herë të fundit u ndërruan vetitë dhe metadatët e skedarit (ctime)
- Kur u aksesua për herë të fundit skedari (atime)
- Mund të përdorni komandën stat, për të parë të dhënat mbi skedarin ose katalogun. Këtu është skedari /etc/fstab nga një nga serverët e mi të testimit:
$ stat fstab
Skedari: fstab
Madhësia: 261 Blloqe: 8 Blloku IO: 4096 skedar i rregullt
Disit: b303h/45827d Inode: 2097285 Lidhjet: 1
Akses: (0664/-rw-rw-r--) Uid: ( 0/ root) Gid: ( 0/ root)
Konteksti: system_u:object_r:etc_t:s0
Aksesi: 2019-04-25 21:10:18.083325111 -0500
Modifiko: 2019-05-16 10:46:47.427686706 -0500
Ndrysho: 2019-05-16 10:46:47.434686674 -0500
Lindi: 2019-04-25 21:03:11.840496275 -0500Këtu shihet se ky skedar u krijua më 25 prill 2019, kur instalova sistemin. Skedari im /etc/fstab u modifikua për herë të fundit më 16 maj 2019, dhe të gjitha atributet e tjera u ndryshuan përafërsisht në të njëjtën kohë.
Nëse kopjoj /etc/fstab në skedarin e ri, datat ndryshojnë, duke treguar se është skedar i ri:
$ sudo cp fstab fstab.bak
$ stat fstab.bak
File: fstab.bak
Size: 261 Blocks: 8 IO Block: 4096 skedar normal
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 -0500Por nëse thjesht e ndryshoj emrin e skedarit, pa e ndryshuar përmbajtjen e tij, Linux do të përditësojë vetëm kohën e modifikimit të skedarit:
$ sudo mv fstab.bak fstab.tmp
$ stat fstab.tmp
File: fstab.tmp
Size: 261 Blocks: 8 IO Block: 4096 skedar normal
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 -0500Këto vula kohore janë shumë të dobishme për disa programe Unix. Për shembull, biff është një program që të njofton për daljen e një mesazhi të ri në postën elektronike. Tani pak njerëz e përdorin, , por në ato ditë, kur kutitë e postës ishin lokale për sistemin, biff ishte mjaft i përdorur.
Si e di programa nëse ke postë të re në hyrje? biff krahasohet kohën e fundit të modifikimit (kur skedari i postës së hyrjes u përditësua me një mesazh të ri të postës elektronike) dhe kohën e fundit të qasjes (herën e fundit kur lexove postën tënde elektronike). Nëse modifikimi ndodhi më vonë se sa qasja, atëherë biff do të kuptojë se një letër e re ka mbërritur dhe do të të njoftojë për këtë. Klienti i postës Mutt funksionon në mënyrë të ngjashme.
Vula kohore e qasjes së fundit është gjithashtu e dobishme, nëse ke nevojë të mbledhësh statistika mbi përdorimin e sistemit të skedarëve dhe të rregullosh performancën. Administratoret e sistemeve duhet të dinë për cilat objekte bëhet qasje, në mënyrë që të konfigurojnë sistemin e skedarëve në përputhje.
Por shumica e programeve moderne nuk e kërkojnë më këtë vulë, ndaj është propozuar që të mos përdoret. Në vitin 2007, Linus Torvalds dhe disa zhvillues të tjerë të bërthamës diskutuan për atime në kontekstin e problemeve me performancën. Zhvilluesi i bërthamës Linux Ingo Molnar bëri këtë vërejtje për atime dhe sistemin e skedarëve ext3:
«ĂshtĂ« mjaft e çuditshme qĂ« çdo desktop dhe server Linux vuajnĂ« nga njĂ« rĂ«nie e dukshme nĂ« performancĂ«n e hyrjes-daljes pĂ«r shkak tĂ« azhurnimeve tĂ« vazhdueshme atime, ndonĂ«se pĂ«rdoruesit e vĂ«rtetĂ« janĂ« vetĂ«m dy: tmpwatch [i cili mund tĂ« konfigurohet pĂ«r tĂ« pĂ«rdorur ctime, kĂ«shtu qĂ« kjo nuk Ă«shtĂ« njĂ« problem i madh] dhe disa mjete rezervimi».
Por njerëzit ende përdorin disa programe që kanë nevojë për këtë etiketë. Prandaj, heqja e atime do të dëmtonte funksionimin e tyre. Zhvilluesit e bërthamës Linux nuk duhet të kufizojnë lirinë e përdoruesit.
Zgjidhja e Salomonit
Në distribucionet Linux përfshihen shumë aplikacione, dhe për më tepër, përdoruesit mund të shkarkojnë dhe instalojnë programe të tjera sipas nevojave të tyre. Ky është një avantazh kyç i OS me kod të hapur. Por kjo e bën më të vështirë optimizimin e performancës së sistemit tuaj të files. Heqja e komponenteve me burime të kërkuara mund të dëmtojë funksionimin e sistemit.
Si një kompromis, zhvilluesit e bërthamës Linux kanë implementuar një mundësi të re relaytime, e cila synon të ofrojë një balans midis performancës dhe përputhshmërisë:
atime përditësohet vetëm nëse koha e mëparshme e aksesit është më e vogël se koha aktuale e modifikimit ose ndryshimit të statusit⊠Duke filluar nga Linux 2.6.30, bërthama përdor këtë mundësi si të dhënë (përveç nëse është specifikuar noatime)⊠Për më tepër, duke filluar nga Linux 2.6.30, koha e fundit e aksesit në skedarin gjithmonë përditësohet nëse është më shumë se 1 ditë.
Sistemet moderne Linux (duke filluar nga Linux 2.6.30, e lëshuar në vitin 2009) tashmë përdorin relaytime, e cila duhet të sjellë një përmirësim të madh në performancë. Kjo do të thotë se nuk keni nevojë të konfiguroheni skedarin /etc/fstab, dhe me relaytime mund të mbështeteni në vlerën e dhënë.
Rritja e performancës së sistemit me noatime
Por nëse dëshironi të konfiguroni sistemin tuaj për të marrë maksimumin nga performanca, çaktivizimi i atime është ende e mundur.
Ndryshimi i performancës mund të mos jetë shumë i dukshëm në disqet moderne shumë të shpejta (si NVME ose SSD të shpejtë), por ka një rritje të vogël.
Nëse e dini se nuk po përdorni ndonjë softuer që kërkon atime, mund të rrisni pak performancën duke përfshirë opsionin noatime në skedarin /etc /fstab. Pas kësaj, bërthama nuk do të azhurnohet vazhdimisht atime. Përdorni opsionin noatime gjatë montimit të sistemit të 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 0Ndryshimet do të hyjnë në fuqi gjatë rinisjes së ardhshme.
SOF6
Keni nevojë për një server për hostimin e faqes? Kompania jonë ofron me pagesë ditore ose njëherë, çdo server është i lidhur me një kanal Interneti prej 500 Megabit dhe është i mbrojtur falas nga sulmet DDoS!
Burimi: habr.com
