Atime-fernijing beynfloedet systeemprestaasjes. Wat bart dêr en wat te dwaan oan it - lês it artikel.
Elke kear as ik Linux bywurkje op myn thúskompjûter, moat ik bepaalde problemen oplosse. Yn 'e rin fan' e jierren is dit in gewoante wurden: ik meitsje in reservekopy fan myn bestannen, wiskje it systeem, ynstallearje alles fanôf it begjin, herstel myn bestannen, en ynstallearje dan myn favorite applikaasjes opnij. Ik feroarje ek de systeemynstellingen om mysels te passen. Soms nimt it te folle tiid. En koartlyn frege ik my ôf oft ik dizze hoofdpijn nedich wie.
in tiid is ien fan trije tiidstempels foar triemmen yn Linux (mear oer dit letter). Benammen frege ik my ôf oft it noch in goed idee wêze soe om Atime op mear resinte Linux-systemen út te skeakeljen. Sûnt atime wurdt bywurke eltse kear as de triem wurdt tagong, Ik realisearre dat it hat in wichtige ynfloed op systeem prestaasje.
Ik haw koartlyn opwurdearre nei Fedora 32 en, út gewoante, begon mei it útskeakeljen fan tiid. Ik tocht: haw ik it echt nedich? Ik besleat dit probleem te studearjen en dit is wat ik opgroeven.
In bytsje oer triem tiidstempels
Om it út te finen, moatte jo in stap werom nimme en in pear dingen ûnthâlde oer Linux-bestânsystemen en hoe't de kearn-timestamps triemmen en mappen. Jo kinne de lêste wizige datum fan bestannen en mappen sjen troch it kommando út te fieren ls -l (lang) of gewoan troch te sjen nei ynformaasje deroer yn de triembehearder. Mar efter de skermen hâldt de Linux-kernel ferskate tiidstempels foar bestannen en mappen by:
- Wannear is de triem lêst wizige (mtime)
- Wannear wie de lêste kear dat de triemeigenskippen en metadata waarden feroare (ctime)
- Wannear wie it bestân foar it lêst tagong (atime)
- Jo kinne it kommando brûke statom ynformaasje oer in triem of map te besjen. Hjir is de triem / etc / fstab fan ien fan myn testservers:
$ 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
Hjir kinne jo sjen dat dit bestân is makke op april 25, 2019 doe't ik it systeem ynstallearre. Myn bestân / etc / fstab waard foar it lêst wizige op 16 maaie 2019, en alle oare attributen waarden om deselde tiid feroare.
As ik kopiearje / etc / fstab nei in nij bestân feroarje de datums om oan te jaan dat it in nij bestân is:
$ 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
Mar as ik it bestân gewoan omneame sûnder de ynhâld te feroarjen, sil Linux allinich de tiid bywurkje dat it bestân wizige is:
$ 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
Dizze tiidstempels binne heul nuttich foar bepaalde Unix-programma's. Bygelyks, biff is in programma dat jo warskôget as der in nij berjocht yn jo e-post is. Tsjintwurdich brûke in pear minsken
Hoe wit it programma as jo nije post yn jo postfak hawwe? biff fergeliket de lêste wizige tiid (doe't it postfakbestân is bywurke mei in nij e-postberjocht) en de lêste tagongstiid (de lêste kear dat jo jo e-post lêze). As de wiziging letter barde as tagong, dan sil Biff begripe dat der in nije brief is oankaam en sil jo derfan ynformearje. De Mutt-e-postkliïnt wurket op in protte deselde manier.
De lêste tagongstiidstempel is ek nuttich as jo statistiken oer gebrûk fan bestânsysteem moatte sammelje en prestaasjes moatte ôfstimme. Systeembehearders moatte witte hokker objekten tagong wurde, sadat se it bestânsysteem dêrop konfigurearje kinne.
Mar de measte moderne programma's hawwe dit label net mear nedich, dus der wie in foarstel om it net te brûken. Yn 2007 besprutsen Linus Torvalds en ferskate oare kernel-ûntwikkelders tiid yn 'e kontekst fan in prestaasjeprobleem. Linux kernel-ûntwikkelder Ingo Molnar makke it folgjende punt oer Atime en it ext3-bestânsysteem:
"It is heul nuver dat elk Linux-buroblêd en -tsjinner te lijen hat oan merkbere I/O-prestaasjesdegradaasje troch konstante tiidupdates, ek al binne d'r mar twa echte brûkers: tmpwatch [dat kin wurde konfigureare om ctime te brûken, dus it is gjin grut probleem] en guon reservekopy-ark."
Mar minsken brûke noch altyd guon programma's dy't dit label nedich binne. Dat it fuortheljen fan tiid sil har funksjonaliteit brekke. Linux kernel-ûntwikkelders moatte net ynbreuk meitsje op brûkersfrijheid.
Salomo syn oplossing
D'r binne in protte applikaasjes opnommen yn Linux-distribúsjes en boppedat kinne brûkers oare programma's downloade en ynstallearje neffens har behoeften. Dit is in wichtich foardiel fan in iepen boarne OS. Mar dit makket it lestich om de prestaasjes fan jo bestânsysteem te optimalisearjen. It fuortsmiten fan boarne-yntinsive komponinten kin it systeem fersteure.
As kompromis hawwe de Linux-kernel-ûntwikkelders in nije relaytime-opsje yntrodusearre dy't bedoeld is om in lykwicht te meitsjen tusken prestaasjes en kompatibiliteit:
atime wurdt allinich bywurke as de foarige tagongstiid minder is as de aktuele wizigings- of statusferoaringstiid... Sûnt Linux 2.6.30 brûkt de kernel dizze opsje standert (útsein as noatime oanjûn is) ... Ek sûnt Linux 2.6.30. 1, wurdt de lêste tagongstiid fan in bestân altyd bywurke as it mear as XNUMX dei âld is.
Moderne Linux-systemen (sûnt Linux 2.6.30, útbrocht yn 2009) brûke al relaytime, wat in echt grutte prestaasjesympuls jaan moat. Dit betsjut dat jo it bestân net hoege te konfigurearjen / etc / fstab, en mei relaytime kinne jo fertrouwe op de standert.
Ferbetterjen fan systeemprestaasjes mei noatime
Mar as jo jo systeem wolle ôfstimme om maksimale prestaasjes te krijen, is it útskeakeljen fan tiid noch mooglik.
De prestaasjesferoaring is miskien net heul merkber op heul rappe moderne skiven (lykas NVME of Fast SSD), mar d'r is in lytse ferheging dêr.
As jo witte dat jo gjin software brûke dy't atime fereasket, kinne jo prestaasjes in bytsje ferbetterje troch de noatime-opsje yn te skeakeljen yn it bestân /etc/fstab. Hjirnei sil de kernel net konstant bywurkje. Brûk de noatime-opsje by it montearjen fan it bestânsysteem:
/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
De wizigingen sille effekt wurde de folgjende kear as jo opnij starte.
Oer de rjochten fan 'e advertinsje
Binne jo in tsjinner nedich om jo webside te hostjen? Us bedriuw biedt
Boarne: www.habr.com