noatime විකල්පය Linux පද්ධතිවල ක්‍රියාකාරිත්වය වැඩි දියුණු කරන්නේ කෙසේද සහ ඇයි

කාල යාවත්කාලීන කිරීම පද්ධති ක්‍රියාකාරිත්වයට බලපායි. එහි සිදුවන්නේ කුමක්ද සහ ඒ සම්බන්ධයෙන් කළ යුතු දේ - ලිපිය කියවන්න.

noatime විකල්පය Linux පද්ධතිවල ක්‍රියාකාරිත්වය වැඩි දියුණු කරන්නේ කෙසේද සහ ඇයි
මම මගේ ගෙදර පරිගණකයේ Linux යාවත්කාලීන කරන සෑම විටම, මට යම් යම් ගැටළු විසඳීමට සිදුවේ. වසර ගණනාවක් පුරා, මෙය පුරුද්දක් බවට පත් වී ඇත: මම මගේ ගොනු උපස්ථ කරමි, පද්ධතිය පිස දමමි, මුල සිටම සියල්ල ස්ථාපනය කරමි, මගේ ගොනු නැවත ස්ථාපනය කරමි, පසුව මගේ ප්රියතම යෙදුම් නැවත ස්ථාපනය කරමි. මම මට ගැලපෙන පරිදි පද්ධති සැකසුම් ද වෙනස් කරමි. සමහර විට එය බොහෝ කාලයක් ගත වේ. ඒ වගේම මෑතකදී මම කල්පනා කළා මට මේ හිසරදය අවශ්‍යද කියා.

වෙලාවට ලිනක්ස් හි ගොනු සඳහා වේලා මුද්දර තුනෙන් එකකි (මේ ගැන වැඩි විස්තර පසුව). විශේෂයෙන්, වඩාත් මෑත ලිනක්ස් පද්ධතිවල වේලාව අක්‍රිය කිරීම තවමත් හොඳ අදහසක් දැයි මම කල්පනා කළෙමි. ගොනුවට ප්‍රවේශ වන සෑම අවස්ථාවකම atime යාවත්කාලීන වන බැවින්, එය පද්ධතියේ ක්‍රියාකාරිත්වයට සැලකිය යුතු බලපෑමක් ඇති බව මට වැටහුණි.
මම මෑතකදී Fedora 32 වෙත උත්ශ්‍රේණි කළ අතර, පුරුද්දෙන් බැහැරව, කාලය අක්‍රිය කිරීමෙන් ආරම්භ කළෙමි. මම හිතුවා: මට ඇත්තටම එය අවශ්යද? මම මෙම ගැටලුව අධ්‍යයනය කිරීමට තීරණය කළ අතර මෙය මම හාරා ගත් දෙයයි.

ගොනු කාල මුද්දර ගැන ටිකක්

එය තේරුම් ගැනීමට, ඔබ පියවරක් පසුපසට ගත යුතු අතර Linux ගොනු පද්ධති සහ කර්නලය ගොනු සහ නාමාවලි වල කාල මුද්‍රා තබන ආකාරය පිළිබඳ කරුණු කිහිපයක් මතක තබා ගත යුතුය. විධානය ක්‍රියාත්මක කිරීමෙන් ඔබට ගොනු සහ නාමාවලිවල අවසන් වෙනස් කළ දිනය දැකිය හැකිය ls -l (දිගු) නැතහොත් ගොනු කළමනාකරු තුළ ඒ පිළිබඳ තොරතුරු බැලීමෙන්. නමුත් තිරය පිටුපස, ලිනක්ස් කර්නලය ගොනු සහ නාමාවලි සඳහා වේලා මුද්දර කිහිපයක් නිරීක්ෂණය කරයි:

  1. ගොනුව අවසන් වරට වෙනස් කළේ කවදාද (mtime)
  2. අවසන් වරට ගොනු ගුණාංග සහ පාර-දත්ත වෙනස් කරන ලද්දේ කවදාද (ctime)
  3. ගොනුව අවසන් වරට ප්‍රවේශ වූයේ කවදාද (වේලාව)
  4. ඔබට විධානය භාවිතා කළ හැකිය statගොනුවක් හෝ නාමාවලියක් පිළිබඳ තොරතුරු බැලීමට. මෙන්න ෆයිල් එක / etc / fstab මගේ ටෙස්ට් සර්වර් එකකින්:

$ 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

මම පද්ධතිය ස්ථාපනය කරන විට මෙම ගොනුව 25 අප්‍රේල් 2019 වන දින නිර්මාණය කර ඇති බව ඔබට මෙහි දැක ගත හැකිය. මගේ ගොනුව / etc / fstab අවසන් වරට 16 මැයි 2019 වන දින වෙනස් කරන ලද අතර අනෙකුත් සියලුම ගුණාංග එම අවස්ථාවේදීම වෙනස් කරන ලදී.

මම පිටපත් කරනවා නම් / etc / fstab නව ගොනුවකට, එය නව ගොනුවක් බව දැක්වීමට දින වෙනස් වේ:

$ 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

නමුත් මම ගොනුව එහි අන්තර්ගතය වෙනස් නොකර නැවත නම් කළහොත්, Linux යාවත්කාලීන කරන්නේ ගොනුව වෙනස් කළ කාලය පමණි:

$ 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

ඇතැම් Unix වැඩසටහන් සඳහා මෙම වේලා මුද්දර ඉතා ප්‍රයෝජනවත් වේ. උදාහරණයක් ලෙස, biff යනු ඔබගේ විද්‍යුත් තැපෑලේ නව පණිවිඩයක් ඇති විට ඔබට දැනුම් දෙන වැඩසටහනකි. වර්තමානයේ ස්වල්ප දෙනෙක් භාවිතා කරති biff, නමුත් තැපැල් පෙට්ටි පද්ධතියට දේශීය වූ දිනවල, biff ඉතා සුලභ විය.

ඔබගේ එන ලිපි තුළ නව තැපැල් තිබේදැයි වැඩසටහන දැන ගන්නේ කෙසේද? biff අවසන් වරට වෙනස් කරන ලද වේලාව (ඉන්බොක්ස් ගොනුව නව විද්‍යුත් තැපැල් පණිවිඩයක් සමඟ යාවත්කාලීන කළ විට) සහ අවසාන ප්‍රවේශ කාලය (ඔබේ විද්‍යුත් තැපෑල කියවූ අවසාන අවස්ථාව) සංසන්දනය කරයි. ප්‍රවේශයට වඩා පසුව වෙනස සිදු වූයේ නම්, නව ලිපියක් පැමිණ ඇති බව biff තේරුම් ගෙන ඒ පිළිබඳව ඔබට දන්වනු ඇත. Mutt විද්‍යුත් තැපැල් සේවාදායකයා ක්‍රියා කරන්නේ බොහෝ දුරට එකම ආකාරයට ය.

ඔබට ගොනු පද්ධති භාවිත සංඛ්‍යාලේඛන එකතු කිරීමට සහ කාර්ය සාධනය සුසර කිරීමට අවශ්‍ය නම් අවසාන ප්‍රවේශ වේලා මුද්‍රාව ද ප්‍රයෝජනවත් වේ. පද්ධති පරිපාලකයින්ට ප්‍රවේශ වන වස්තූන් මොනවාදැයි දැන ගැනීමට අවශ්‍ය වන අතර එමඟින් ඔවුන්ට ගොනු පද්ධතිය ඒ අනුව වින්‍යාස කළ හැකිය.

නමුත් බොහෝ නවීන වැඩසටහන් තවදුරටත් මෙම ලේබලය අවශ්ය නොවේ, එබැවින් එය භාවිතා නොකිරීමට යෝජනාවක් විය. 2007 දී, Linus Torvalds සහ තවත් කර්නල් සංවර්ධකයින් කිහිප දෙනෙකු කාර්ය සාධන ගැටළුවක සන්දර්භය තුළ සාකච්ඡා කළහ. Linux කර්නල් සංවර්ධක Ingo Molnar විසින් atime සහ ext3 ගොනු පද්ධතිය පිළිබඳව පහත කරුණු ඉදිරිපත් කළේය:

"සැබෑ පරිශීලකයින් දෙදෙනෙකු පමණක් සිටියත්, සෑම ලිනක්ස් ඩෙස්ක්ටොප් එකක් සහ සේවාදායකයක්ම නිරන්තර කාල යාවත්කාලීන කිරීම් හේතුවෙන් සැලකිය යුතු I/O කාර්ය සාධනය පිරිහීමකට ලක්වීම පුදුම සහගතය: tmpwatch [ctime භාවිතා කිරීමට වින්‍යාසගත කළ හැකි බැවින් එය විශාල ගැටළුවක් නොවේ] සහ උපස්ථ මෙවලම් කිහිපයක්."

නමුත් මිනිසුන් තවමත් මෙම ලේබලය අවශ්‍ය සමහර වැඩසටහන් භාවිතා කරයි. එබැවින් කාලය ඉවත් කිරීම ඔවුන්ගේ ක්රියාකාරිත්වය බිඳ දමනු ඇත. ලිනක්ස් කර්නල් සංවර්ධකයින් පරිශීලක නිදහස උල්ලංඝනය නොකළ යුතුය.

සලමොන්ගේ විසඳුම

ලිනක්ස් බෙදාහැරීම් තුළ බොහෝ යෙදුම් ඇතුළත් වන අතර ඊට අමතරව, පරිශීලකයින්ට ඔවුන්ගේ අවශ්‍යතා අනුව වෙනත් වැඩසටහන් බාගත කර ස්ථාපනය කළ හැකිය. මෙය විවෘත කේත OS එකක ප්‍රධාන වාසියකි. නමුත් මෙය ඔබගේ ගොනු පද්ධතියේ ක්‍රියාකාරීත්වය ප්‍රශස්ත කිරීම අපහසු කරයි. සම්පත්-දැඩි සංරචක ඉවත් කිරීමෙන් පද්ධතියට බාධා ඇති විය හැක.

සම්මුතියක් ලෙස, Linux kernel සංවර්ධකයින් විසින් කාර්ය සාධනය සහ ගැළපුම අතර සමතුලිතතාවයක් ඇති කිරීමට අදහස් කරන නව relaytime විකල්පයක් හඳුන්වා දී ඇත:

atime යාවත්කාලීන වන්නේ පෙර ප්‍රවේශ කාලය වත්මන් වෙනස් කිරීමේ හෝ තත්ත්වය වෙනස් කිරීමේ කාලයට වඩා අඩු නම් පමණි... Linux 2.6.30 සිට, කර්නලය පෙරනිමියෙන් මෙම විකල්පය භාවිතා කරයි (noatime සඳහන් කර නොමැති නම්)... එසේම, Linux 2.6.30 සිට . 1, ගොනුවක අවසාන ප්‍රවේශ කාලය සෑම විටම එය දින XNUMXකට වඩා පැරණි නම් යාවත්කාලීන වේ.

නවීන Linux පද්ධති (2.6.30 දී නිකුත් කරන ලද Linux 2009 සිට) දැනටමත් relaytime භාවිතා කරයි, එය සැබවින්ම විශාල කාර්ය සාධනයක් ලබා දිය යුතුය. මෙයින් අදහස් කරන්නේ ඔබට ගොනුව වින්‍යාස කිරීමට අවශ්‍ය නොවන බවයි / etc / fstab, සහ relaytime සමඟ ඔබට පෙරනිමිය මත විශ්වාසය තැබිය හැක.

noatime සමඟ පද්ධතියේ කාර්ය සාධනය වැඩි දියුණු කිරීම

නමුත් ඔබට උපරිම කාර්ය සාධනය ලබා ගැනීම සඳහා ඔබේ පද්ධතිය සුසර කිරීමට අවශ්‍ය නම්, කාලය අක්‍රිය කිරීම තවමත් කළ හැකිය.

ඉතා වේගවත් නවීන ධාවකවල (NVME හෝ Fast SSD වැනි) කාර්ය සාධනය වෙනස් වීම එතරම් කැපී පෙනෙන්නේ නැත, නමුත් එහි කුඩා වැඩිවීමක් ඇත.

ඔබ කාලය අවශ්‍ය මෘදුකාංග භාවිතා නොකරන බව ඔබ දන්නේ නම්, ගොනුවේ noatime විකල්පය සක්‍රීය කිරීමෙන් ඔබට කාර්ය සාධනය තරමක් වැඩි දියුණු කළ හැක. /etc/fstab. මෙයින් පසු, කර්නලය නිරන්තරයෙන් යාවත්කාලීන නොවේ. ගොනු පද්ධතිය සවි කිරීමේදී 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

ඔබ මීළඟ වතාවේ නැවත ආරම්භ කරන විට වෙනස්කම් බලාත්මක වනු ඇත.

දැන්වීම් ප්රචාරණ අයිතිවාසිකම්

ඔබේ වෙබ් අඩවියට සත්කාරකත්වය ලබා දීමට ඔබට සේවාදායකයක් අවශ්‍යද? අපගේ සමාගම පිරිනමයි විශ්වාසදායක සේවාදායකයන් දෛනික හෝ එක් වරක් ගෙවීමක් සමඟින්, සෑම සේවාදායකයක්ම මෙගාබිට් 500 ක අන්තර්ජාල නාලිකාවකට සම්බන්ධ කර ඇති අතර නොමිලේ DDoS ප්‍රහාරවලින් ආරක්ෂා වේ!

noatime විකල්පය Linux පද්ධතිවල ක්‍රියාකාරිත්වය වැඩි දියුණු කරන්නේ කෙසේද සහ ඇයි

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න