Çawa û çima vebijarka noatime performansa pergalên Linux çêtir dike

Nûvekirina Atime bandorê li performansa pergalê dike. Tiştê ku li wir diqewime û li ser wê çi bikin - gotarê bixwînin.

Çawa û çima vebijarka noatime performansa pergalên Linux çêtir dike
Gava ku ez Linux-ê li ser komputera xweya malê nûve bikim, divê ez hin pirsgirêkan çareser bikim. Bi salan, ev bûye adet: Ez pelên xwe paşde vedigirim, pergalê paqij dikim, her tiştî ji sifirê saz dikim, pelên xwe sererast dikim, dûv re serîlêdanên xweyên bijare ji nû ve saz dikim. Ez mîhengên pergalê jî li gorî xwe diguherim. Carinan ew pir wext digire. Û di van demên dawî de min meraq kir gelo hewcedariya min bi vê serêşê heye.

atime ji bo pelên li Linux-ê yek ji sê mohra demjimêran e (li ser vê paşê bêtir). Bi taybetî, min meraq dikir gelo ew ê hîn jî ramanek baş be ku meriv li ser pergalên Linux yên nûtirîn dem neçalak bike. Ji ber ku her gava ku pel tê gihîştinê atime nûve dibe, min fêm kir ku ew bandorek girîng li ser performansa pergalê heye.
Min vê dawiyê nûve kir Fedora 32 û, ji adetî, dest bi neçalakkirina demekê kir. Ez fikirîm: Ma ez bi rastî hewce dikim? Min biryar da ku ez vê mijarê bixwînim û ev tiştê ku min vekir.

Piçekî li ser demjimêrên pelan

Ji bo ku hûn wiya fêm bikin, hûn hewce ne ku gav paşde bavêjin û çend tiştan li ser pergalên pelan ên Linux-ê û çawa kernel pel û peldankan nîşan dide. Hûn dikarin bi xebitandina fermanê tarîxa paşîn a pel û peldankan a guherandinê bibînin ls -l (dirêj) an jî bi tenê bi dîtina agahdariya li ser wê di rêvebirê pelê de. Lê li pişt perdeyê, kernel Linux ji bo pel û peldankan çend demjimaran dişopîne:

  1. Dosya herî dawî kengê hate guherandin (mtime)
  2. Cara dawî kengê taybetmendiyên pelê û metadata hatin guhertin (ctime)
  3. Dosya herî dawî kengê hat gihîştin (wext)
  4. Hûn dikarin fermanê bikar bînin statji bo dîtina agahdariya li ser pel an pelrêçek. Li vir pelê ye / etc / fstab ji yek ji serverên testa min:

$ 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

Li vir hûn dikarin bibînin ku ev pel di 25ê Avrêl, 2019 de dema ku min pergalê saz kir hate afirandin. Dosya min / etc / fstab herî dawî di 16ê Gulana 2019an de hate guherandin, û hemî taybetmendiyên din di heman demê de hatin guhertin.

Ger ez kopî bikim / etc / fstab ji pelek nû re, tarîx diguherin da ku nîşan bidin ku ew pelek nû ye:

$ 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

Lê heke ez tenê navê pelê biguhezînim bêyî ku naveroka wê biguhezînim, Linux dê tenê dema ku pel hate guheztin nûve bike:

$ 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

Van demjimêran ji bo hin bernameyên Unix pir bikêr in. Mînakî, biff bernameyek e ku gava di e-nameya we de peyamek nû hebe we agahdar dike. Niha hindik kes bikar tînin biff, lê di rojên ku qutiyên posteyê ji pergalê re herêmî bûn, biff pir gelemperî bû.

Bername çawa dizane ku di nav qutiya we de nameya we ya nû heye? biff dema paşîn a guherandinê (gava ku pela inboxê bi peyamek e-nameyek nû hate nûve kirin) û dema gihîştina paşîn (cara paşîn a ku we e-nameya xwe xwend) berhev dike. Ger guhertin ji gihîştinê dereng çêbû, wê hingê biff dê fêm bike ku nameyek nû hatiye û dê we di derbarê wê de agahdar bike. Muwekîlê e-nameya Mutt bi heman rengî dixebite.

Ger hûn hewce ne ku statîstîkên karanîna pergala pelan berhev bikin û performansa xweş bikin, dema gihandina paşîn a paşîn jî bikêr e. Pêdivî ye ku rêvebirên pergalê zanibin ka kîjan tiştan têne gihîştin da ku ew li gorî pergala pelan mîheng bikin.

Lê piraniya bernameyên nûjen êdî ne hewceyî vê etîketê ne, ji ber vê yekê pêşniyarek hebû ku ew neyê bikar anîn. Di 2007 de, Linus Torvalds û çend pêşdebirên kernelê yên din di çarçoveyek pirsgirêkek performansê de demekê nîqaş kirin. Pêşdebirê kernel Linux Ingo Molnar li ser atime û pergala pelê ext3 xala jêrîn kir:

"Ew pir ecêb e ku her sermaseyek û serverek Linux-ê ji ber nûvekirinên domdar ên demkî rastî xirabûna performansa I/O ya berbiçav tê, her çend tenê du bikarhênerên rastîn hene: tmpwatch [ku dikare were mîheng kirin ku ctime bikar bîne, ji ber vê yekê ew ne pirsgirêkek mezin e] û hin amûrên hilanînê."

Lê mirov dîsa jî hin bernameyên ku hewceyê vê labelê ne bikar tînin. Ji ber vê yekê rakirina demê dê fonksiyona wan bişkîne. Pêşdebirên kernel Linux divê azadiya bikarhêner binpê nekin.

Çareseriya Silêman

Di nav belavkirinên Linuxê de gelek sepan hene û ji bilî vê, bikarhêner dikarin li gorî hewcedariyên xwe bernameyên din daxin û saz bikin. Ev avantajek bingehîn a OS-ya çavkaniya vekirî ye. Lê ev yek xweşbînkirina performansa pergala pelê we dijwar dike. Rakirina hêmanên çavkanî-dijwar dibe ku pergalê xera bike.

Wekî lihevkirinek, pêşdebirên kernel Linux vebijarkek nû ya relaytime destnîşan kirine ku armanc e ku balansek di navbera performans û lihevhatinê de çêbike:

atime tenê tê nûvekirin heke dema gihîştina berê ji dema guherandina an jî dema guherîna statûyê kêmtir be... Ji Linux 2.6.30 ve, kernel vê vebijarkê bi xweber bikar tîne (heta ku noatime diyar nebe)... Her weha, ji Linux 2.6.30. 1, dema gihîştina paşîn a pelê her gav tê nûve kirin heke ew ji XNUMX rojî zêdetir be.

Pergalên nûjen ên Linux (ji Linux 2.6.30, ku di 2009-an de hatî berdan) jixwe relaytime bikar tînin, ku divê performansek pir mezin bide. Ev tê vê wateyê ku hûn ne hewce ne ku hûn pelê mîheng bikin / etc / fstab, û bi relaytime re hûn dikarin xwe bispêrin xwerû.

Bi noatime re performansa pergalê çêtir dike

Lê heke hûn dixwazin pergala xwe guhezînin da ku performansa herî zêde bistînin, neçalakkirina demê hîn jî gengaz e.

Guhertina performansê dibe ku li ser ajokarên nûjen ên pir bilez (wekî NVME an Fast SSD) pir xuya nebe, lê li wir zêdebûnek piçûk heye.

Heke hûn dizanin ku hûn nermalava ku wextê hewce dike bikar neynin, hûn dikarin bi çalakkirina vebijarka noatime di pelê de performansê hinekî baştir bikin. /etc/fstab. Piştî vê yekê, kernel dê her dem bi domdarî nûve neke. Dema ku pergala pelan saz bikin vebijarka noatime bikar bînin:

/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

Dema ku hûn ji nû ve dest pê bikin dê guheztin bikeve meriyetê.

Li Mafên Malperê

Ma hûn serverek hewce ne ku hûn malpera xwe mêvandar bikin? Pargîdaniya me pêşkêşî dike pêşkêşkerên pêbawer bi dravdana rojane an yek carî, her serverek bi kanalek Înternetê ya 500 Megabit ve girêdayî ye û li dijî êrîşên DDoS belaş tê parastin!

Çawa û çima vebijarka noatime performansa pergalên Linux çêtir dike

Source: www.habr.com

Add a comment