Atime-ĝisdatigo influas sisteman rendimenton. Kio okazas tie kaj kion fari pri tio - legu la artikolon.
Kiam ajn mi ĝisdatigas Linukson en mia hejma komputilo, mi devas solvi iujn problemojn. Tra la jaroj, ĉi tio fariĝis kutimo: mi rezervas miajn dosierojn, viŝas la sistemon, instalas ĉion de nulo, restarigas miajn dosierojn, poste reinstalas miajn plej ŝatatajn aplikaĵojn. Mi ankaŭ ŝanĝas la sistemajn agordojn laŭ mi mem. Kelkfoje necesas tro da tempo. Kaj lastatempe mi demandis min, ĉu mi bezonas ĉi tiun kapdoloron.
tempo estas unu el tri tempomarkoj por dosieroj en Linukso (pli pri tio poste). Precipe, mi scivolis ĉu ankoraŭ estus bona ideo malŝalti atime sur pli lastatempaj Linuksaj sistemoj. Ĉar atime estas ĝisdatigita ĉiufoje kiam la dosiero estas alirita, mi rimarkis, ke ĝi havas signifan efikon al sistema rendimento.
Mi lastatempe ĝisdatigis al Fedora 32 kaj, pro kutimo, komencis malŝaltante atime. Mi pensis: ĉu mi vere bezonas ĝin? Mi decidis studi ĉi tiun aferon kaj jen kion mi elfosis.
Iom pri dosieraj tempomarkoj
Por eltrovi ĝin, vi devas fari paŝon malantaŭen kaj memori kelkajn aferojn pri Linukso-dosiersistemoj kaj kiel la kerno tempostampas dosierojn kaj dosierujojn. Vi povas vidi la lastan modifitan daton de dosieroj kaj dosierujoj rulante la komandon ls -l (longa) aŭ simple rigardante informojn pri ĝi en la dosieradministranto. Sed malantaŭ la scenoj, la Linukso-kerno kontrolas plurajn tempomarkojn por dosieroj kaj dosierujoj:
- Kiam la dosiero estis laste modifita (mtime)
- Kiam estis la lastan fojon la dosierpropraĵoj kaj metadatenoj estis ŝanĝitaj (ctime)
- Kiam la dosiero estis laste alirita (atime)
- Vi povas uzi la komandon statpor vidi informojn pri dosiero aŭ dosierujo. Jen la dosiero / ktp / fstab de unu el miaj testserviloj:
$ 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
Ĉi tie vi povas vidi, ke ĉi tiu dosiero estis kreita la 25-an de aprilo 2019 kiam mi instalis la sistemon. Mia dosiero / ktp / fstab estis laste modifita la 16-an de majo 2019, kaj ĉiuj aliaj atributoj estis ŝanĝitaj ĉirkaŭ la sama tempo.
Se mi kopias / ktp / fstab al nova dosiero, la datoj ŝanĝiĝas por indiki ke ĝi estas nova dosiero:
$ 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
Sed se mi nur renomas la dosieron sen ŝanĝi ĝian enhavon, Linukso ĝisdatigos nur la tempon kiam la dosiero estis modifita:
$ 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
Ĉi tiuj tempomarkoj estas tre utilaj por certaj Uniksaj programoj. Ekzemple, biff estas programo, kiu sciigas vin kiam estas nova mesaĝo en via retpoŝto. Nuntempe malmultaj homoj uzas
Kiel la programo scias ĉu vi havas novan poŝton en via enirkesto? biff komparas la lastan modifitan tempon (kiam la enirkesto dosiero estis ĝisdatigita kun nova retpoŝta mesaĝo) kaj la lastan alirtempon (la lastan fojon kiam vi legis vian retpoŝton). Se la ŝanĝo okazis poste ol aliro, tiam biff komprenos, ke nova letero alvenis kaj sciigos vin pri tio. La retpoŝta kliento Mutt funkcias tre same.
La lasta alira tempomarko ankaŭ estas utila se vi bezonas kolekti statistikojn pri uzado de dosiersistemaj kaj agordi rendimenton. Sistemadministrantoj devas scii kiajn objektojn estas alireblaj, por ke ili povu agordi la dosiersistemon laŭe.
Sed la plej multaj modernaj programoj ne plu bezonas ĉi tiun etikedon, do estis propono ne uzi ĝin. En 2007, Linus Torvalds kaj pluraj aliaj kernprogramistoj diskutis pri tempo en la kunteksto de agado-temo. Linukso-kerna programisto Ingo Molnar faris la sekvan punkton pri atime kaj la dosiersistemo ext3:
"Estas sufiĉe strange, ke ĉiu Linuksa labortablo kaj servilo suferas rimarkindan I/O-efikecmalboniĝon pro konstantaj atime-ĝisdatigoj, kvankam ekzistas nur du realaj uzantoj: tmpwatch [kiu povas esti agordita por uzi ctime, do ĝi ne estas granda problemo] kaj iuj rezerva iloj."
Sed homoj ankoraŭ uzas kelkajn programojn, kiuj bezonas ĉi tiun etikedon. Do forigi atime rompos ilian funkciecon. Linuksaj kernaj programistoj ne devas malobservi uzantliberecon.
La solvo de Salomono
Estas multaj aplikaĵoj inkluzivitaj en Linukso-distribuoj kaj krome, uzantoj povas elŝuti kaj instali aliajn programojn laŭ siaj bezonoj. Ĉi tio estas ŝlosila avantaĝo de malfermfonta OS. Sed ĉi tio malfacilas optimumigi la rendimenton de via dosiersistemo. Forigi rimedintensajn komponentojn povas interrompi la sistemon.
Kiel kompromiso, la programistoj de Linukso-kerno enkondukis novan relaŭdan opcion, kiu celas atingi ekvilibron inter rendimento kaj kongruo:
atime estas ĝisdatigita nur se la antaŭa alirtempo estas malpli granda ol la nuna modifa aŭ statusŝanĝa tempo... Ekde Linukso 2.6.30, la kerno uzas ĉi tiun opcion defaŭlte (krom se noatime estas specifita)... Ankaŭ ekde Linukso 2.6.30 . 1, la lasta alirtempo de dosiero ĉiam estas ĝisdatigita se ĝi estas pli ol XNUMX-taga.
Modernaj Linuksaj sistemoj (ekde Linukso 2.6.30, publikigita en 2009) jam uzas relajstempon, kiu devus doni vere grandan rendimentan akcelon. Ĉi tio signifas, ke vi ne bezonas agordi la dosieron / ktp / fstab, kaj kun relaytempo vi povas fidi je la defaŭlta.
Plibonigante sisteman rendimenton kun noatime
Sed se vi volas agordi vian sistemon por akiri maksimuman rendimenton, malŝalti tempon ankoraŭ eblas.
La rendimentoŝanĝo eble ne estas tre rimarkebla sur tre rapidaj modernaj diskoj (kiel NVME aŭ Fast SSD), sed estas malgranda pliiĝo tie.
Se vi scias, ke vi ne uzas programaron, kiu postulas tempon, vi povas iomete plibonigi rendimenton ebligante la opcion noatime en la dosiero. /etc/fstab. Post ĉi tio, la kerno ne konstante ĝisdatiĝos. Uzu la opcion noatime dum muntado de la dosiersistemo:
/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
La ŝanĝoj efektiviĝos la venontan fojon kiam vi rekomencos.
Pri la Rajtoj de Reklamado
Ĉu vi bezonas servilon por gastigi vian retejon? Nia kompanio proponas
fonto: www.habr.com