Hvernig og hvers vegna noatime valkosturinn bætir afköst Linux kerfa

Atime uppfærsla hefur áhrif á afköst kerfisins. Hvað er að gerast þar og hvað á að gera við því - lestu greinina.

Hvernig og hvers vegna noatime valkosturinn bætir afköst Linux kerfa
Alltaf þegar ég uppfæri Linux á heimatölvunni minni þarf ég að leysa ákveðin vandamál. Í gegnum árin hefur þetta orðið að venju: Ég afrita skrárnar mínar, þurrka af kerfinu, setja upp allt frá grunni, endurheimta skrárnar mínar og setja svo upp uppáhaldsforritin mín aftur. Ég breyti líka kerfisstillingunum til að henta mér. Stundum tekur það of mikinn tíma. Og nýlega velti ég því fyrir mér hvort ég þyrfti þennan höfuðverk.

tími er einn af þremur tímastimplum fyrir skrár í Linux (nánar um þetta síðar). Sérstaklega var ég að velta fyrir mér hvort það væri samt góð hugmynd að slökkva á Atime á nýrri Linux kerfum. Þar sem atime er uppfært í hvert skipti sem skráin er opnuð, áttaði ég mig á því að það hefur veruleg áhrif á afköst kerfisins.
Ég uppfærði nýlega í Fedora 32 og af vana byrjaði ég á því að slökkva á tíma. Ég hugsaði: þarf ég þess virkilega? Ég ákvað að kynna mér þetta mál og þetta er það sem ég gróf upp.

Smá um skráartímastimpil

Til að átta þig á því þarftu að taka skref til baka og muna nokkra hluti um Linux skráarkerfi og hvernig kjarnan tímastimplar skrár og möppur. Þú getur séð síðustu breytta dagsetningu skráa og möppu með því að keyra skipunina ls -l (langur) eða einfaldlega með því að skoða upplýsingar um það í skráastjóranum. En á bak við tjöldin heldur Linux kjarninn utan um nokkra tímastimpla fyrir skrár og möppur:

  1. Hvenær var skránni síðast breytt (mtime)
  2. Hvenær var síðast breytt skráareiginleikum og lýsigögnum (ctime)
  3. Hvenær var síðast opnað á skrána (atime)
  4. Þú getur notað skipunina stattil að skoða upplýsingar um skrá eða möppu. Hér er skráin / etc / fstab frá einum af prófunarþjónum mínum:

$ 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

Hér má sjá að þessi skrá var búin til 25. apríl 2019 þegar ég setti upp kerfið. Skráin mín / etc / fstab var síðast breytt 16. maí 2019 og öllum öðrum eiginleikum var breytt um svipað leyti.

Ef ég afrita / etc / fstab í nýja skrá breytast dagsetningarnar til að gefa til kynna að þetta sé ný skrá:

$ 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

En ef ég endurnefna skrána án þess að breyta innihaldi hennar mun Linux aðeins uppfæra þann tíma sem skránni var breytt:

$ 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

Þessir tímastimplar eru mjög gagnlegir fyrir ákveðin Unix forrit. Til dæmis er biff forrit sem lætur þig vita þegar ný skilaboð eru í tölvupóstinum þínum. Nú á dögum nota fáir biff, en á þeim dögum þegar pósthólf voru staðbundin í kerfinu var biff frekar algengt.

Hvernig veit forritið hvort þú sért með nýjan póst í pósthólfinu þínu? biff ber saman síðasta breytta tíma (þegar pósthólfsskráin var uppfærð með nýjum tölvupósti) og síðasta aðgangstíma (síðast þegar þú lest tölvupóstinn þinn). Ef breytingin átti sér stað seinna en aðgangur mun biff skilja að nýtt bréf er komið og mun láta þig vita um það. Mutt tölvupóstforritið virkar á svipaðan hátt.

Síðasti aðgangstímastimpillinn er einnig gagnlegur ef þú þarft að safna tölfræði um notkun skráakerfisins og stilla afköst. Kerfisstjórar þurfa að vita hvaða hluti er verið að nálgast svo þeir geti stillt skráarkerfið í samræmi við það.

En flest nútímaforrit þurfa ekki lengur þennan merkimiða, svo það var tillaga um að nota það ekki. Árið 2007 ræddu Linus Torvalds og nokkrir aðrir kjarnahönnuðir um tíma í tengslum við frammistöðuvandamál. Linux kjarna verktaki Ingo Molnar kom með eftirfarandi atriði um Atime og ext3 skráarkerfið:

„Það er alveg skrítið að sérhver Linux skjáborð og netþjónn þjáist af áberandi skerðingu á I/O frammistöðu vegna stöðugra tímauppfærslu, jafnvel þó að það séu aðeins tveir raunverulegir notendur: tmpwatch [sem hægt er að stilla til að nota ctime, svo það er ekki mikið vandamál] og nokkur varaverkfæri."

En fólk notar samt nokkur forrit sem þurfa þetta merki. Svo að fjarlægja Atime mun brjóta virkni þeirra. Linux kjarna forritarar ættu ekki að brjóta gegn frelsi notenda.

Lausn Salómons

Það eru mörg forrit innifalin í Linux dreifingum og auk þess geta notendur hlaðið niður og sett upp önnur forrit eftir þörfum þeirra. Þetta er lykilkostur opins stýrikerfis. En þetta gerir það erfitt að hámarka afköst skráarkerfisins. Ef auðlindafrekir íhlutir eru fjarlægðir getur það truflað kerfið.

Sem málamiðlun hafa Linux kjarnahönnuðir kynnt nýjan gengistímavalkost sem er ætlað að koma á jafnvægi milli frammistöðu og eindrægni:

atime er aðeins uppfært ef fyrri aðgangstími er minni en núverandi breytingar- eða stöðubreytingartími... Þar sem Linux 2.6.30 notar kjarninn þennan valmöguleika sjálfgefið (nema noatime sé tilgreindur)... Einnig þar sem Linux 2.6.30 . 1, er síðasti aðgangstími skráar alltaf uppfærður ef hún er meira en XNUMX dags gömul.

Nútíma Linux kerfi (frá Linux 2.6.30, gefin út árið 2009) nota nú þegar relaytime, sem ætti að gefa mjög mikla afköst. Þetta þýðir að þú þarft ekki að stilla skrána / etc / fstab, og með relaytime geturðu reitt þig á sjálfgefið.

Bætir afköst kerfisins með noatime

En ef þú vilt stilla kerfið þitt til að fá hámarksafköst, er samt hægt að slökkva á tíma.

Afkastabreytingin er kannski ekki mjög áberandi á mjög hröðum nútímadrifum (svo sem NVME eða Fast SSD), en það er lítil aukning þar.

Ef þú veist að þú ert ekki að nota hugbúnað sem krefst tíma geturðu bætt árangur örlítið með því að virkja noatime valkostinn í skránni /etc/fstab. Eftir þetta mun kjarninn ekki stöðugt uppfæra á tíma. Notaðu noatime valkostinn þegar þú setur upp skráarkerfið:

/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

Breytingarnar munu taka gildi næst þegar þú endurræsir.

Um réttindi auglýsinga

Þarftu netþjón til að hýsa vefsíðuna þína? Fyrirtækið okkar býður upp á áreiðanlegum netþjónum með daglegri eða einu sinni greiðslu er hver netþjónn tengdur við 500 megabita netrás og er varinn gegn DDoS árásum ókeypis!

Hvernig og hvers vegna noatime valkosturinn bætir afköst Linux kerfa

Heimild: www.habr.com

Bæta við athugasemd