کیسے اور کیوں noatime آپشن لینکس سسٹم کی کارکردگی کو بہتر بناتا ہے۔

Atime اپ ڈیٹ سسٹم کی کارکردگی کو متاثر کرتا ہے۔ وہاں کیا ہو رہا ہے اور اس کے بارے میں کیا کرنا ہے - مضمون پڑھیں.

کیسے اور کیوں noatime آپشن لینکس سسٹم کی کارکردگی کو بہتر بناتا ہے۔
جب بھی میں اپنے گھر کے کمپیوٹر پر لینکس کو اپ ڈیٹ کرتا ہوں، مجھے کچھ مسائل حل کرنے ہوتے ہیں۔ سالوں کے دوران، یہ ایک عادت بن گئی ہے: میں اپنی فائلوں کا بیک اپ لیتا ہوں، سسٹم کو صاف کرتا ہوں، سب کچھ شروع سے انسٹال کرتا ہوں، اپنی فائلوں کو بحال کرتا ہوں، پھر اپنی پسندیدہ ایپلی کیشنز کو دوبارہ انسٹال کرتا ہوں۔ میں اپنے مطابق سسٹم کی سیٹنگز بھی تبدیل کرتا ہوں۔ کبھی کبھی اس میں بہت زیادہ وقت لگتا ہے۔ اور حال ہی میں میں نے سوچا کہ کیا مجھے اس سر درد کی ضرورت ہے۔

ایک وقت لینکس میں فائلوں کے لیے تین ٹائم اسٹیمپ میں سے ایک ہے (اس پر مزید بعد میں)۔ خاص طور پر، میں سوچ رہا تھا کہ کیا اب بھی زیادہ حالیہ لینکس سسٹمز پر وقت کو غیر فعال کرنا اچھا خیال ہوگا۔ چونکہ ہر بار فائل تک رسائی کے وقت atime کو اپ ڈیٹ کیا جاتا ہے، میں نے محسوس کیا کہ اس کا سسٹم کی کارکردگی پر خاصا اثر پڑتا ہے۔
میں نے حال ہی میں فیڈورا 32 میں اپ گریڈ کیا ہے اور عادت سے باہر، وقت کو غیر فعال کرکے شروع کیا ہے۔ میں نے سوچا: کیا مجھے واقعی اس کی ضرورت ہے؟ میں نے اس مسئلے کا مطالعہ کرنے کا فیصلہ کیا اور یہ وہی ہے جو میں نے کھود لیا۔

فائل ٹائم اسٹیمپ کے بارے میں تھوڑا سا

اس کا پتہ لگانے کے لیے، آپ کو ایک قدم پیچھے ہٹنا ہوگا اور لینکس فائل سسٹم کے بارے میں کچھ چیزیں یاد رکھنا ہوں گی اور یہ کہ کرنل فائلوں اور ڈائریکٹریوں کو ٹائم اسٹیمپ کیسے کرتا ہے۔ آپ کمانڈ چلا کر فائلوں اور ڈائریکٹریوں کی آخری ترمیم شدہ تاریخ دیکھ سکتے ہیں۔ 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

لیکن اگر میں صرف اس کے مواد کو تبدیل کیے بغیر فائل کا نام تبدیل کرتا ہوں، تو لینکس صرف اس وقت اپ ڈیٹ کرے گا جب فائل میں ترمیم کی گئی تھی۔

$ 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

یہ ٹائم اسٹیمپ مخصوص یونکس پروگراموں کے لیے بہت مفید ہیں۔ مثال کے طور پر، biff ایک ایسا پروگرام ہے جو آپ کو مطلع کرتا ہے جب آپ کے ای میل میں کوئی نیا پیغام آتا ہے۔ آج کل بہت کم لوگ استعمال کرتے ہیں۔ بفلیکن ان دنوں میں جب میل باکس سسٹم کے لیے مقامی تھے، biff کافی عام تھا۔

پروگرام کو کیسے پتہ چلے گا کہ آیا آپ کے ان باکس میں نیا میل ہے؟ biff آخری ترمیم شدہ وقت (جب ان باکس فائل کو ایک نئے ای میل پیغام کے ساتھ اپ ڈیٹ کیا گیا تھا) اور آخری رسائی کے وقت (آخری بار جب آپ اپنا ای میل پڑھتے تھے) کا موازنہ کرتا ہے۔ اگر تبدیلی رسائی کے بعد ہوئی ہے، تو biff سمجھے گا کہ ایک نیا خط آیا ہے اور آپ کو اس کے بارے میں مطلع کرے گا۔ Mutt ای میل کلائنٹ اسی طرح کام کرتا ہے۔

آخری رسائی کا ٹائم اسٹیمپ بھی مفید ہے اگر آپ کو فائل سسٹم کے استعمال کے اعداد و شمار اور کارکردگی کو ٹیون کرنے کی ضرورت ہو۔ سسٹم ایڈمنسٹریٹرز کو یہ جاننے کی ضرورت ہے کہ کن اشیاء تک رسائی حاصل کی جا رہی ہے تاکہ وہ اس کے مطابق فائل سسٹم کو ترتیب دے سکیں۔

لیکن زیادہ تر جدید پروگراموں کو اب اس لیبل کی ضرورت نہیں ہے، اس لیے اسے استعمال نہ کرنے کی تجویز تھی۔ 2007 میں، لینس ٹوروالڈس اور کئی دیگر کرنل ڈویلپرز نے کارکردگی کے مسئلے کے تناظر میں وقتاً فوقتاً گفتگو کی۔ لینکس کرنل ڈویلپر Ingo Molnar نے atime اور ext3 فائل سسٹم کے بارے میں درج ذیل نکتہ بیان کیا:

"یہ کافی عجیب بات ہے کہ ہر لینکس ڈیسک ٹاپ اور سرور کو مسلسل وقتی اپ ڈیٹس کی وجہ سے I/O کارکردگی میں نمایاں کمی کا سامنا کرنا پڑتا ہے، حالانکہ صرف دو حقیقی صارف ہیں: tmpwatch [جسے ctime استعمال کرنے کے لیے کنفیگر کیا جا سکتا ہے، لہذا یہ کوئی بڑا مسئلہ نہیں ہے] اور کچھ بیک اپ ٹولز۔"

لیکن لوگ اب بھی کچھ پروگرام استعمال کرتے ہیں جن کو اس لیبل کی ضرورت ہوتی ہے۔ لہذا وقت کو ہٹانے سے ان کی فعالیت ٹوٹ جائے گی۔ لینکس کرنل ڈویلپرز کو صارف کی آزادی کی خلاف ورزی نہیں کرنی چاہیے۔

سلیمان کا حل

لینکس ڈسٹری بیوشنز میں بہت سی ایپلی کیشنز شامل ہیں اور اس کے علاوہ صارفین اپنی ضروریات کے مطابق دیگر پروگرامز ڈاؤن لوڈ اور انسٹال کر سکتے ہیں۔ یہ اوپن سورس OS کا ایک اہم فائدہ ہے۔ لیکن اس سے آپ کے فائل سسٹم کی کارکردگی کو بہتر بنانا مشکل ہو جاتا ہے۔ وسائل سے بھرپور اجزاء کو ہٹانے سے سسٹم میں خلل پڑ سکتا ہے۔

ایک سمجھوتے کے طور پر، لینکس کرنل ڈویلپرز نے ایک نیا ریلے ٹائم آپشن متعارف کرایا ہے جس کا مقصد کارکردگی اور مطابقت کے درمیان توازن قائم کرنا ہے:

atime صرف اس صورت میں اپ ڈیٹ کیا جاتا ہے جب سابقہ ​​رسائی کا وقت موجودہ ترمیم یا حالت میں تبدیلی کے وقت سے کم ہو... لینکس 2.6.30 کے بعد سے، کرنل اس آپشن کو بطور ڈیفالٹ استعمال کرتا ہے (جب تک کہ noatime کی وضاحت نہ کی گئی ہو)... اس کے علاوہ، Linux 2.6.30 کے بعد سے۔ 1، فائل کی آخری رسائی کا وقت ہمیشہ اپ ڈیٹ کیا جاتا ہے اگر یہ XNUMX دن سے زیادہ پرانی ہے۔

جدید لینکس سسٹمز (لینکس 2.6.30 کے بعد سے، 2009 میں ریلیز ہوا) پہلے سے ہی ریلے ٹائم کا استعمال کرتے ہیں، جس سے کارکردگی کو واقعی بڑا فروغ ملنا چاہیے۔ اس کا مطلب ہے کہ آپ کو فائل کو کنفیگر کرنے کی ضرورت نہیں ہے۔ / etc / fstab، اور ریلے ٹائم کے ساتھ آپ ڈیفالٹ پر بھروسہ کر سکتے ہیں۔

noatime کے ساتھ سسٹم کی کارکردگی کو بہتر بنانا

لیکن اگر آپ اپنے سسٹم کو زیادہ سے زیادہ کارکردگی حاصل کرنے کے لیے ٹیون کرنا چاہتے ہیں تو وقت کو غیر فعال کرنا اب بھی ممکن ہے۔

کارکردگی کی تبدیلی بہت تیز جدید ڈرائیوز (جیسے NVME یا فاسٹ SSD) پر بہت زیادہ نمایاں نہیں ہوسکتی ہے، لیکن وہاں تھوڑا سا اضافہ ہوا ہے۔

اگر آپ جانتے ہیں کہ آپ ایسا سافٹ ویئر استعمال نہیں کر رہے ہیں جس کے لیے وقت درکار ہے، تو آپ فائل میں نوٹائم آپشن کو فعال کر کے کارکردگی کو قدرے بہتر کر سکتے ہیں۔ /etc/fstab. اس کے بعد، دانا مسلسل وقت پر اپ ڈیٹ نہیں کرے گا. فائل سسٹم کو ماؤنٹ کرتے وقت نوٹائم آپشن کا استعمال کریں:

/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 آپشن لینکس سسٹم کی کارکردگی کو بہتر بناتا ہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں