Hoe en waarom die noatime-opsie die werkverrigting van Linux-stelsels verbeter

Atime-opdatering beïnvloed stelselwerkverrigting. Wat gebeur daar en wat om daaraan te doen - lees die artikel.

Hoe en waarom die noatime-opsie die werkverrigting van Linux-stelsels verbeter
Wanneer ek Linux op my tuisrekenaar opdateer, moet ek sekere probleme oplos. Oor die jare het dit 'n gewoonte geword: ek rugsteun my lêers, vee die stelsel uit, installeer alles van nuuts af, herstel my lêers en installeer dan my gunsteling toepassings weer. Ek verander ook die stelselinstellings om myself te pas. Soms neem dit te veel tyd. En onlangs het ek gewonder of ek hierdie hoofpyn nodig het.

n tyd is een van drie tydstempels vir lêers in Linux (meer hieroor later). Ek het veral gewonder of dit steeds 'n goeie idee sou wees om tyd op meer onlangse Linux-stelsels te deaktiveer. Aangesien atime elke keer bygewerk word wanneer toegang tot die lêer verkry word, het ek besef dat dit 'n beduidende impak op stelselwerkverrigting het.
Ek het onlangs opgegradeer na Fedora 32 en, uit gewoonte, begin deur tyd uit te skakel. Ek het gedink: het ek dit regtig nodig? Ek het besluit om hierdie kwessie te bestudeer en dit is wat ek opgegrawe het.

'N bietjie oor lêer tydstempels

Om dit uit te vind, moet jy 'n stap terug neem en 'n paar dinge onthou oor Linux-lêerstelsels en hoe die kern-tydstempel lêers en dopgehou het. U kan die laaste gewysigde datum van lêers en gidse sien deur die opdrag uit te voer ls -l (lank) of bloot deur na inligting daaroor in die lêerbestuurder te kyk. Maar agter die skerms hou die Linux-kern rekord van verskeie tydstempels vir lêers en dopgehou:

  1. Wanneer is die lêer laas gewysig (mtime)
  2. Wanneer laas is die lêereienskappe en metadata verander (ctime)
  3. Wanneer is laas toegang tot die lêer verkry (atime)
  4. Jy kan die opdrag gebruik statom inligting oor 'n lêer of gids te sien. Hier is die lêer / Etc / fstab vanaf een van my toetsbedieners:

$ 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

Hier kan jy sien dat hierdie lêer op 25 April 2019 geskep is toe ek die stelsel geïnstalleer het. My lêer / Etc / fstab is laas op 16 Mei 2019 gewysig, en alle ander eienskappe is omtrent dieselfde tyd verander.

As ek kopieer / Etc / fstab na 'n nuwe lêer, die datums verander om aan te dui dat dit 'n nuwe lêer 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

Maar as ek net die lêer hernoem sonder om die inhoud daarvan te verander, sal Linux slegs die tydstip waarop die lêer gewysig is opdateer:

$ 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

Hierdie tydstempels is baie nuttig vir sekere Unix-programme. Byvoorbeeld, biff is 'n program wat jou in kennis stel wanneer daar 'n nuwe boodskap in jou e-pos is. Deesdae gebruik min mense biff, maar in die dae toe posbusse plaaslik op die stelsel was, was biff redelik algemeen.

Hoe weet die program of jy nuwe pos in jou inkassie het? biff vergelyk die laaste gewysigde tyd (toe die inkassielêer opgedateer is met 'n nuwe e-posboodskap) en die laaste toegangstyd (die laaste keer dat jy jou e-pos gelees het). As die verandering later as toegang plaasgevind het, sal Biff verstaan ​​dat 'n nuwe brief aangekom het en sal jou daarvan in kennis stel. Die Mutt-e-poskliënt werk baie op dieselfde manier.

Die laaste toegangstydstempel is ook nuttig as jy lêerstelselgebruikstatistieke moet insamel en werkverrigting moet instel. Stelseladministrateurs moet weet watter voorwerpe toegang verkry word sodat hulle die lêerstelsel dienooreenkomstig kan opstel.

Maar die meeste moderne programme het nie meer hierdie etiket nodig nie, so daar was 'n voorstel om dit nie te gebruik nie. In 2007 het Linus Torvalds en verskeie ander kernontwikkelaars 'n tyd in die konteks van 'n prestasieprobleem bespreek. Linux-kernontwikkelaar Ingo Molnar het die volgende punt gemaak oor atime en die ext3-lêerstelsel:

"Dit is nogal vreemd dat elke Linux-rekenaar en -bediener merkbare I/O-werkverrigting agteruitgang ervaar as gevolg van konstante tydopdaterings, al is daar net twee regte gebruikers: tmpwatch [wat gekonfigureer kan word om ctime te gebruik, so dit is nie 'n groot probleem nie] en sommige rugsteunnutsgoed."

Maar mense gebruik steeds sommige programme wat hierdie etiket benodig. So die verwydering van tyd sal hul funksionaliteit breek. Linux-kernontwikkelaars moenie op gebruikersvryheid inbreuk maak nie.

Salomo se oplossing

Daar is baie toepassings ingesluit in Linux-verspreidings en daarbenewens kan gebruikers ander programme volgens hul behoeftes aflaai en installeer. Dit is 'n belangrike voordeel van 'n oopbron-bedryfstelsel. Maar dit maak dit moeilik om jou lêerstelsel se werkverrigting te optimaliseer. Die verwydering van hulpbron-intensiewe komponente kan die stelsel ontwrig.

As 'n kompromie het die Linux-kernontwikkelaars 'n nuwe herleityd-opsie bekendgestel wat bedoel is om 'n balans tussen werkverrigting en versoenbaarheid te vind:

atime word slegs opgedateer as die vorige toegangstyd minder is as die huidige wysigings- of statusveranderingstyd... Sedert Linux 2.6.30, gebruik die kern hierdie opsie by verstek (tensy noatime gespesifiseer word)... Ook, aangesien Linux 2.6.30 . 1, word die laaste toegangstyd van 'n lêer altyd opgedateer as dit meer as XNUMX dag oud is.

Moderne Linux-stelsels (sedert Linux 2.6.30, vrygestel in 2009) gebruik reeds aflostyd, wat 'n baie groot prestasie-hupstoot behoort te gee. Dit beteken dat jy nie die lêer hoef op te stel nie / Etc / fstab, en met aflostyd kan jy staatmaak op die verstek.

Verbeter stelselwerkverrigting met noatime

Maar as jy jou stelsel wil instel om maksimum werkverrigting te kry, is dit steeds moontlik om tyd uit te skakel.

Die prestasieverandering is dalk nie baie opvallend op baie vinnige moderne aandrywers (soos NVME of Fast SSD), maar daar is 'n klein toename daar.

As jy weet jy gebruik nie sagteware wat tyd vereis nie, kan jy werkverrigting effens verbeter deur die noatime-opsie in die lêer te aktiveer /etc/fstab. Hierna sal die kern nie voortdurend op tyd bywerk nie. Gebruik die noatime-opsie wanneer u die lêerstelsel monteer:

/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

Die veranderinge sal in werking tree die volgende keer as jy herlaai.

Oor die regte van reklame

Het u 'n bediener nodig om u webwerf te huisves? Ons maatskappy bied betroubare bedieners met 'n daaglikse of eenmalige betaling, is elke bediener gekoppel aan 'n internetkanaal van 500 Megabit en word gratis teen DDoS-aanvalle beskerm!

Hoe en waarom die noatime-opsie die werkverrigting van Linux-stelsels verbeter

Bron: will.com

Voeg 'n opmerking