Atime posodobitev vpliva na delovanje sistema. Kaj se tam dogaja in kaj storiti glede tega - preberite članek.
Kadarkoli posodobim Linux na domačem računalniku, moram rešiti določene težave. Z leti je to postalo navada: varnostno kopiram svoje datoteke, obrišem sistem, vse namestim od začetka, obnovim svoje datoteke in nato znova namestim svoje najljubše aplikacije. Tudi sistemske nastavitve spreminjam po svoje. Včasih vzame preveč časa. In pred kratkim sem se spraševal, ali potrebujem ta glavobol.
Čas je eden od treh časovnih žigov za datoteke v Linuxu (več o tem pozneje). Zlasti sem se spraševal, ali bi bilo še vedno dobro onemogočiti atime v novejših sistemih Linux. Ker se atime posodobi ob vsakem dostopu do datoteke, sem ugotovil, da pomembno vpliva na delovanje sistema.
Pred kratkim sem nadgradil na Fedoro 32 in iz navade začel z onemogočanjem atime. Pomislil sem: ali ga res potrebujem? Odločil sem se preučiti to vprašanje in to je tisto, kar sem izkopal.
Nekaj o časovnih žigih datotek
Če želite to ugotoviti, morate stopiti korak nazaj in se spomniti nekaj stvari o datotečnih sistemih Linux in o tem, kako jedro označuje datoteke in imenike s časovnimi žigi. Datum zadnje spremembe datotek in imenikov si lahko ogledate tako, da zaženete ukaz ls -l (dolg) ali preprosto tako, da pogledate informacije o tem v upravitelju datotek. Toda v zakulisju jedro Linuxa spremlja več časovnih žigov za datoteke in imenike:
- Kdaj je bila datoteka nazadnje spremenjena (mtime)
- Kdaj so bile nazadnje spremenjene lastnosti datoteke in metapodatki (ctime)
- Kdaj je bil nazadnje dostopan do datoteke (atime)
- Uporabite lahko ukaz statza ogled informacij o datoteki ali imeniku. Tukaj je datoteka / etc / fstab iz enega od mojih testnih strežnikov:
$ 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
Tukaj lahko vidite, da je bila ta datoteka ustvarjena 25. aprila 2019, ko sem namestil sistem. Moja datoteka / etc / fstab je bil nazadnje spremenjen 16. maja 2019 in vsi drugi atributi so bili spremenjeni približno ob istem času.
Če kopiram / etc / fstab v novo datoteko se datumi spremenijo, kar pomeni, da gre za novo datoteko:
$ 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
Toda če samo preimenujem datoteko, ne da bi spremenil njeno vsebino, bo Linux posodobil samo čas, ko je bila datoteka spremenjena:
$ 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
Ti časovni žigi so zelo uporabni za določene programe Unix. Na primer, biff je program, ki vas obvesti, ko je v vaši e-pošti novo sporočilo. Dandanes malo ljudi uporablja
Kako program ve, ali imate v mapi »Prejeto« novo pošto? biff primerja čas zadnje spremembe (ko je bila datoteka prejeto posodobljena z novim e-poštnim sporočilom) in čas zadnjega dostopa (ko ste zadnjič prebrali svojo e-pošto). Če je do spremembe prišlo pozneje kot pri dostopu, bo biff razumel, da je prispelo novo pismo in vas o tem obvestil. E-poštni odjemalec Mutt deluje približno na enak način.
Časovni žig zadnjega dostopa je uporaben tudi, če morate zbrati statistiko uporabe datotečnega sistema in prilagoditi zmogljivost. Sistemski skrbniki morajo vedeti, do katerih objektov se dostopa, da lahko ustrezno konfigurirajo datotečni sistem.
Toda večina sodobnih programov te oznake ne potrebuje več, zato je bil predlog, da se je ne uporablja. Leta 2007 so Linus Torvalds in številni drugi razvijalci jedra razpravljali o atime v kontekstu težave z zmogljivostjo. Razvijalec jedra Linuxa Ingo Molnar je povedal naslednje o atime in datotečnem sistemu ext3:
»Precej nenavadno je, da vsako namizje in strežnik Linux trpi opazno poslabšanje zmogljivosti V/I zaradi nenehnih posodobitev atime, čeprav sta samo dva resnična uporabnika: tmpwatch [ki ga je mogoče konfigurirati za uporabo ctime, tako da ni velik problem] in nekaj orodij za varnostno kopiranje."
Toda ljudje še vedno uporabljajo nekatere programe, ki potrebujejo to oznako. Če torej odstranite atime, bo njihova funkcionalnost prekinjena. Razvijalci jedra Linuxa ne smejo posegati v svobodo uporabnika.
Salomonova rešitev
V distribucijah Linuxa je vključenih veliko aplikacij, poleg tega pa lahko uporabniki prenesejo in namestijo druge programe glede na svoje potrebe. To je ključna prednost odprtokodnega operacijskega sistema. Vendar je zaradi tega težko optimizirati delovanje datotečnega sistema. Odstranjevanje komponent, ki zahtevajo veliko virov, lahko povzroči motnje v delovanju sistema.
Kot kompromis so razvijalci jedra Linuxa uvedli novo možnost zaporednega prenosa, ki naj bi dosegla ravnotežje med zmogljivostjo in združljivostjo:
atime se posodobi le, če je prejšnji čas dostopa krajši od trenutnega časa za spremembo ali spremembo statusa ... Od Linuxa 2.6.30 naprej jedro uporablja to možnost privzeto (razen če ni določen noatime) ... Tudi od Linuxa 2.6.30 naprej. 1, se čas zadnjega dostopa do datoteke vedno posodobi, če je starejša od XNUMX dne.
Sodobni sistemi Linux (od Linuxa 2.6.30, izdanega leta 2009) že uporabljajo časovno prekinitev, kar bi moralo resnično močno povečati zmogljivost. To pomeni, da vam datoteke ni treba konfigurirati / etc / fstab, pri relejnem času pa se lahko zanesete na privzeto.
Izboljšanje delovanja sistema z noatime
Če pa želite svoj sistem prilagoditi tako, da bo dosegel največjo možno zmogljivost, je še vedno mogoče onemogočiti atime.
Sprememba zmogljivosti morda ni zelo opazna na zelo hitrih sodobnih pogonih (kot sta NVME ali hitri SSD), vendar je tam rahlo povečanje.
Če veste, da ne uporabljate programske opreme, ki zahteva atime, lahko nekoliko izboljšate zmogljivost tako, da omogočite možnost noatime v datoteki /etc/fstab. Po tem se jedro ne bo nenehno posodabljalo. Pri nameščanju datotečnega sistema uporabite možnost 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
Spremembe bodo začele veljati ob naslednjem ponovnem zagonu.
O pravicah oglaševanja
Ali potrebujete strežnik za gostovanje vaše spletne strani? Naše podjetje ponuja
Vir: www.habr.com