Hoe en wêrom de noatime-opsje de prestaasjes fan Linux-systemen ferbettert

Atime-fernijing beynfloedet systeemprestaasjes. Wat bart dêr en wat te dwaan oan it - lês it artikel.

Hoe en wêrom de noatime-opsje de prestaasjes fan Linux-systemen ferbettert
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:

  1. Wannear is de triem lêst wizige (mtime)
  2. Wannear wie de lêste kear dat de triemeigenskippen en metadata waarden feroare (ctime)
  3. Wannear wie it bestân foar it lêst tagong (atime)
  4. 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 biff, mar yn 'e dagen doe't postfakken wiene lokaal foar it systeem, wie biff hiel gewoan.

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 betroubere tsjinners mei in deistige as ienmalige betelling is elke tsjinner ferbûn mei in ynternetkanaal fan 500 Megabits en is fergees beskerme tsjin DDoS-oanfallen!

Hoe en wêrom de noatime-opsje de prestaasjes fan Linux-systemen ferbettert

Boarne: www.habr.com

Add a comment