Atime atjauninÄjums ietekmÄ sistÄmas veiktspÄju. Kas tur notiek un ko ar to darÄ«t - lasiet rakstÄ.
Ikreiz, kad es atjauninu Linux savÄ mÄjas datorÄ, man ir jÄatrisina noteiktas problÄmas. Gadu gaitÄ tas ir kļuvis par ieradumu: es dublÄju savus failus, notÄ«ru sistÄmu, instalÄju visu no nulles, atjaunoju savus failus un pÄc tam pÄrinstalÄju savas iecienÄ«tÄkÄs lietojumprogrammas. Es arÄ« mainu sistÄmas iestatÄ«jumus, lai tie atbilstu sev. Dažreiz tas aizÅem pÄrÄk daudz laika. Un nesen es domÄju, vai man ir vajadzÄ«gas Ŕīs galvassÄpes.
laiks ir viens no trim laika zÄ«mogiem failiem operÄtÄjsistÄmÄ Linux (vairÄk par to vÄlÄk). Jo Ä«paÅ”i es domÄju, vai joprojÄm bÅ«tu laba ideja atspÄjot laiku jaunÄkÄs Linux sistÄmÄs. TÄ kÄ atime tiek atjauninÄts katru reizi, kad tiek piekļūts failam, es sapratu, ka tas bÅ«tiski ietekmÄ sistÄmas veiktspÄju.
Es nesen jauninÄju uz Fedora 32 un aiz ieraduma sÄku ar laiku atspÄjot. Es domÄju: vai man tas tieÅ”Äm ir vajadzÄ«gs? Es nolÄmu izpÄtÄ«t Å”o jautÄjumu, un tas ir tas, ko es izraku.
Mazliet par failu laikspiedoliem
Lai to noskaidrotu, jums ir jÄatkÄpjas un jÄatceras dažas lietas par Linux failu sistÄmÄm un to, kÄ kodols uzspiež failus un direktorijus. Palaižot komandu, varat redzÄt pÄdÄjo failu un direktoriju modificÄÅ”anas datumu ls -l (garÅ”) vai vienkÄrÅ”i apskatot informÄciju par to failu pÄrvaldniekÄ. Bet aizkulisÄs Linux kodols seko vairÄkiem failu un direktoriju laikspiedoliem:
- Kad fails pÄdÄjo reizi tika modificÄts (mtime)
- Kad pÄdÄjo reizi tika mainÄ«ti faila rekvizÄ«ti un metadati (ctime)
- Kad failam pÄdÄjo reizi piekļūts (laikÄ)
- JÅ«s varat izmantot komandu valstslai skatÄ«tu informÄciju par failu vai direktoriju. Å eit ir fails / etc / fstab no viena no maniem testa serveriem:
$ 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
Å eit var redzÄt, ka Å”is fails tika izveidots 25. gada 2019. aprÄ«lÄ«, kad es instalÄju sistÄmu. Mans fails / etc / fstab pÄdÄjo reizi tika mainÄ«ts 16. gada 2019. maijÄ, un visi pÄrÄjie atribÅ«ti tika mainÄ«ti aptuveni tajÄ paÅ”Ä laikÄ.
Ja kopÄÅ”u / etc / fstab uz jaunu failu, datumi mainÄs, lai norÄdÄ«tu, ka tas ir jauns fails:
$ 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
Bet, ja es vienkÄrÅ”i pÄrdÄvÄju failu, nemainot tÄ saturu, Linux atjauninÄs tikai laiku, kad fails tika modificÄts:
$ 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
Å ie laikspiedoli ir ļoti noderÄ«gi noteiktÄm Unix programmÄm. PiemÄram, biff ir programma, kas paziÅo, kad jÅ«su e-pastÄ ir jauns ziÅojums. MÅ«sdienÄs maz cilvÄku lieto
KÄ programma zina, vai jÅ«su iesÅ«tnÄ ir jauns pasts? biff salÄ«dzina pÄdÄjo modificÄÅ”anas laiku (kad iesÅ«tnes fails tika atjauninÄts ar jaunu e-pasta ziÅojumu) un pÄdÄjo piekļuves laiku (pÄdÄjo reizi, kad lasÄ«jÄt savu e-pastu). Ja izmaiÅas ir notikuÅ”as vÄlÄk nekÄ piekļuve, tad biff sapratÄ«s, ka ir pienÄkusi jauna vÄstule, un paziÅos par to. Mutt e-pasta klients darbojas aptuveni tÄdÄ paÅ”Ä veidÄ.
PÄdÄjais piekļuves laikspiedols ir noderÄ«gs arÄ« tad, ja nepiecieÅ”ams apkopot failu sistÄmas lietojuma statistiku un pielÄgot veiktspÄju. SistÄmas administratoriem ir jÄzina, kÄdiem objektiem tiek piekļūts, lai viÅi varÄtu attiecÄ«gi konfigurÄt failu sistÄmu.
Bet lielÄkajai daļai mÅ«sdienu programmu Å”is apzÄ«mÄjums vairs nav vajadzÄ«gs, tÄpÄc izskanÄja priekÅ”likums to neizmantot. 2007. gadÄ Linuss Torvalds un vairÄki citi kodola izstrÄdÄtÄji laiku pa laikam apsprieda veiktspÄjas problÄmu. Linux kodola izstrÄdÄtÄjs Ingo MolnÄrs norÄdÄ«ja uz laiku un ext3 failu sistÄmu:
"Tas ir diezgan dÄ«vaini, ka katrs Linux galddators un serveris cieÅ” no ievÄrojamas I/O veiktspÄjas pasliktinÄÅ”anÄs nepÄrtrauktu atjauninÄjumu dÄļ, lai gan ir tikai divi reÄli lietotÄji: tmpwatch [kuru var konfigurÄt, lai izmantotu ctime, tÄpÄc tÄ nav liela problÄma] un daži dublÄÅ”anas rÄ«ki."
Bet cilvÄki joprojÄm izmanto dažas programmas, kurÄm nepiecieÅ”ama Ŕī etiÄ·ete. TÄpÄc, to laiku noÅemot, tiks pÄrtraukta to funkcionalitÄte. Linux kodola izstrÄdÄtÄjiem nevajadzÄtu pÄrkÄpt lietotÄja brÄ«vÄ«bu.
ZÄlamana risinÄjums
Linux izplatÄ«jumos ir iekļautas daudzas lietojumprogrammas, turklÄt lietotÄji var lejupielÄdÄt un instalÄt citas programmas atbilstoÅ”i savÄm vajadzÄ«bÄm. Å Ä« ir galvenÄ atvÄrtÄ pirmkoda OS priekÅ”rocÄ«ba. TaÄu tas apgrÅ«tina failu sistÄmas veiktspÄjas optimizÄÅ”anu. Resursu ietilpÄ«go komponentu noÅemÅ”ana var izraisÄ«t sistÄmas darbÄ«bas traucÄjumus.
KÄ kompromisu Linux kodola izstrÄdÄtÄji ir ieviesuÅ”i jaunu relaytime opciju, kas paredzÄta, lai panÄktu lÄ«dzsvaru starp veiktspÄju un saderÄ«bu:
atime tiek atjauninÄts tikai tad, ja iepriekÅ”Äjais piekļuves laiks ir mazÄks par paÅ”reizÄjo modifikÄcijas vai statusa maiÅas laiku... KopÅ” Linux 2.6.30 kodols izmanto Å”o opciju pÄc noklusÄjuma (ja vien nav norÄdÄ«ts noatime)... TÄpat kopÅ” Linux 2.6.30 . 1, faila pÄdÄjais piekļuves laiks vienmÄr tiek atjauninÄts, ja tas ir vairÄk nekÄ XNUMX dienu vecs.
MÅ«sdienu Linux sistÄmÄs (kopÅ” Linux 2.6.30, kas tika izlaista 2009. gadÄ) jau tiek izmantots relaytime, kam vajadzÄtu sniegt patieÅ”Äm lielu veiktspÄjas pieaugumu. Tas nozÄ«mÄ, ka fails nav jÄkonfigurÄ / etc / fstab, un ar relaytime varat paļauties uz noklusÄjuma.
SistÄmas veiktspÄjas uzlaboÅ”ana ar noatime
Bet, ja vÄlaties noregulÄt sistÄmu, lai iegÅ«tu maksimÄlu veiktspÄju, joprojÄm ir iespÄjama atspÄjoÅ”ana.
VeiktspÄjas izmaiÅas var nebÅ«t Ä«paÅ”i pamanÄmas ļoti Ätros modernajos diskos (piemÄram, NVME vai Fast SSD), taÄu tur ir neliels pieaugums.
Ja zinÄt, ka neizmantojat programmatÅ«ru, kurai nepiecieÅ”ams laiks, varat nedaudz uzlabot veiktspÄju, failÄ iespÄjojot opciju noatime /etc/fstab. PÄc tam kodols netiks pastÄvÄ«gi atjauninÄts. InstalÄjot failu sistÄmu, izmantojiet opciju 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
IzmaiÅas stÄsies spÄkÄ nÄkamajÄ atsÄknÄÅ”anas reizÄ.
Par reklÄmas tiesÄ«bÄm
Vai jums ir nepiecieÅ”ams serveris, lai mitinÄtu jÅ«su vietni? MÅ«su uzÅÄmums piedÄvÄ
Avots: www.habr.com