Kā un kāpēc noatime opcija uzlabo Linux sistēmu veiktspēju

Atime atjauninājums ietekmē sistēmas veiktspēju. Kas tur notiek un ko ar to darīt - lasiet rakstā.

Kā un kāpēc noatime opcija uzlabo Linux sistēmu veiktspēju
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:

  1. Kad fails pēdējo reizi tika modificēts (mtime)
  2. Kad pēdējo reizi tika mainīti faila rekvizīti un metadati (ctime)
  3. Kad failam pēdējo reizi piekļūts (laikā)
  4. 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 biff, bet laikos, kad pastkastītes bija lokālas sistēmā, biff bija diezgan izplatīta parādība.

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ā uzticami serveri ar ikdienas vai vienreizēju maksājumu katrs serveris ir savienots ar 500 megabitu interneta kanālu un ir aizsargāts pret DDoS uzbrukumiem bez maksas!

Kā un kāpēc noatime opcija uzlabo Linux sistēmu veiktspēju

Avots: www.habr.com

Pievieno komentāru