อย่างไรและเพราะเหตุใดตัวเลือก noatime จึงปรับปรุงประสิทธิภาพของระบบ Linux

การอัพเดต Atime ส่งผลต่อประสิทธิภาพของระบบ เกิดอะไรขึ้นที่นั่นและต้องทำอย่างไร - อ่านบทความ

อย่างไรและเพราะเหตุใดตัวเลือก noatime จึงปรับปรุงประสิทธิภาพของระบบ Linux
เมื่อใดก็ตามที่ฉันอัปเดต Linux บนคอมพิวเตอร์ที่บ้าน ฉันจะต้องแก้ไขปัญหาบางอย่าง หลายปีที่ผ่านมา สิ่งนี้กลายเป็นนิสัย: ฉันสำรองไฟล์ ล้างระบบ ติดตั้งทุกอย่างตั้งแต่เริ่มต้น กู้คืนไฟล์ จากนั้นติดตั้งแอปพลิเคชันโปรดของฉันใหม่ ฉันยังเปลี่ยนการตั้งค่าระบบให้เหมาะกับตัวเองด้วย บางครั้งก็ใช้เวลานานเกินไป และเมื่อเร็ว ๆ นี้ฉันสงสัยว่าฉันต้องการอาการปวดหัวนี้หรือไม่

เวลา เป็นหนึ่งในสามการประทับเวลาสำหรับไฟล์ใน Linux (เพิ่มเติมในภายหลัง) โดยเฉพาะอย่างยิ่ง ฉันสงสัยว่าจะเป็นความคิดที่ดีหรือไม่ที่จะปิดการใช้งาน atime บนระบบ Linux รุ่นล่าสุด เนื่องจาก atime ได้รับการอัพเดตทุกครั้งที่มีการเข้าถึงไฟล์ ฉันจึงตระหนักว่ามันมีผลกระทบอย่างมากต่อประสิทธิภาพของระบบ
ฉันเพิ่งอัพเกรดเป็น Fedora 32 และโดยเริ่มจากการปิดการใช้งาน atime ฉันคิดว่า: ฉันต้องการมันจริงๆเหรอ? ฉันตัดสินใจศึกษาปัญหานี้และนี่คือสิ่งที่ฉันขุดขึ้นมา

เล็กน้อยเกี่ยวกับการประทับเวลาของไฟล์

หากต้องการทราบ คุณต้องย้อนกลับไปและจดจำบางสิ่งเกี่ยวกับระบบไฟล์ Linux และวิธีที่เคอร์เนลประทับเวลาไฟล์และไดเร็กทอรี คุณสามารถดูวันที่แก้ไขล่าสุดของไฟล์และไดเร็กทอรีได้โดยการรันคำสั่ง ls -l (ยาว) หรือเพียงแค่ดูข้อมูลเกี่ยวกับมันในตัวจัดการไฟล์ แต่เบื้องหลัง เคอร์เนล Linux ติดตามการประทับเวลาหลายรายการสำหรับไฟล์และไดเร็กทอรี:

  1. ไฟล์ถูกแก้ไขครั้งล่าสุดเมื่อใด (mtime)
  2. ครั้งสุดท้ายที่คุณสมบัติไฟล์และข้อมูลเมตามีการเปลี่ยนแปลง (เวลา)
  3. ไฟล์ถูกเข้าถึงครั้งล่าสุดเมื่อใด (atime)
  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 จะเข้าใจว่ามีจดหมายฉบับใหม่มาถึงแล้วและจะแจ้งให้คุณทราบ โปรแกรมรับส่งอีเมล Mutt ทำงานในลักษณะเดียวกันมาก

การประทับเวลาการเข้าถึงครั้งล่าสุดยังมีประโยชน์หากคุณต้องการรวบรวมสถิติการใช้งานระบบไฟล์และปรับแต่งประสิทธิภาพ ผู้ดูแลระบบจำเป็นต้องทราบว่ามีการเข้าถึงออบเจ็กต์ใดบ้าง เพื่อให้สามารถกำหนดค่าระบบไฟล์ได้อย่างเหมาะสม

แต่โปรแกรมสมัยใหม่ส่วนใหญ่ไม่ต้องการป้ายกำกับนี้อีกต่อไป จึงมีข้อเสนอที่จะไม่ใช้ป้ายกำกับนี้ ในปี 2007 Linus Torvalds และผู้พัฒนาเคอร์เนลอีกหลายคนได้หารือกันในบริบทของปัญหาด้านประสิทธิภาพ ผู้พัฒนาเคอร์เนล Linux Ingo Molnar ได้กล่าวถึงประเด็นต่อไปนี้เกี่ยวกับ atime และระบบไฟล์ ext3:

“ค่อนข้างแปลกที่เดสก์ท็อปและเซิร์ฟเวอร์ Linux ทุกเครื่องประสบปัญหาประสิทธิภาพ I/O ลดลงอย่างเห็นได้ชัดเนื่องจากการอัพเดตเวลาอย่างต่อเนื่อง แม้ว่าจะมีผู้ใช้จริงเพียงสองคนเท่านั้น: tmpwatch [ซึ่งสามารถกำหนดค่าให้ใช้ ctime ได้ ดังนั้นจึงไม่ใช่ปัญหาใหญ่] และ เครื่องมือสำรองข้อมูลบางอย่าง"

แต่ผู้คนยังคงใช้บางโปรแกรมที่ต้องการป้ายกำกับนี้ ดังนั้นการลบเวลาจะทำให้ฟังก์ชันการทำงานเสียหาย นักพัฒนาเคอร์เนล Linux ไม่ควรละเมิดเสรีภาพของผู้ใช้

วิธีแก้ปัญหาของโซโลมอน

มีแอปพลิเคชั่นมากมายรวมอยู่ในลีนุกซ์รุ่นต่างๆ และนอกจากนี้ ผู้ใช้สามารถดาวน์โหลดและติดตั้งโปรแกรมอื่นๆ ได้ตามความต้องการ นี่เป็นข้อได้เปรียบที่สำคัญของระบบปฏิบัติการโอเพ่นซอร์ส แต่สิ่งนี้ทำให้การเพิ่มประสิทธิภาพระบบไฟล์ของคุณทำได้ยาก การถอดส่วนประกอบที่ใช้ทรัพยากรจำนวนมากอาจทำให้ระบบหยุดชะงัก

เพื่อเป็นการประนีประนอม นักพัฒนาเคอร์เนล Linux ได้เปิดตัวตัวเลือกเวลาถ่ายทอดใหม่ซึ่งมีจุดมุ่งหมายเพื่อสร้างสมดุลระหว่างประสิทธิภาพและความเข้ากันได้:

atime จะได้รับการอัปเดตก็ต่อเมื่อเวลาเข้าถึงก่อนหน้าน้อยกว่าเวลาการแก้ไขปัจจุบันหรือเวลาเปลี่ยนสถานะ... ตั้งแต่ Linux 2.6.30 เคอร์เนลจะใช้ตัวเลือกนี้เป็นค่าเริ่มต้น (เว้นแต่จะระบุ noatime)... นอกจากนี้ เนื่องจาก Linux 2.6.30 วันที่ 1 เวลาเข้าถึงล่าสุดของไฟล์จะได้รับการอัปเดตเสมอหากไฟล์นั้นมีอายุมากกว่า XNUMX วัน

ระบบ Linux สมัยใหม่ (ตั้งแต่ Linux 2.6.30 เปิดตัวในปี 2009) ใช้เวลารีเลย์อยู่แล้ว ซึ่งน่าจะช่วยเพิ่มประสิทธิภาพได้อย่างมาก ซึ่งหมายความว่าคุณไม่จำเป็นต้องกำหนดค่าไฟล์ / etc / fstabและด้วยเวลารีเลย์ คุณสามารถพึ่งพาค่าเริ่มต้นได้

การปรับปรุงประสิทธิภาพของระบบด้วย noatime

แต่ถ้าคุณต้องการปรับแต่งระบบของคุณเพื่อให้ได้ประสิทธิภาพสูงสุด การปิดใช้งาน atime ยังคงเป็นไปได้

การเปลี่ยนแปลงประสิทธิภาพอาจไม่สังเกตเห็นได้ชัดเจนนักในไดรฟ์สมัยใหม่ที่เร็วมาก (เช่น 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

ที่มา: will.com

เพิ่มความคิดเห็น