เคอร์เนล Linux เป็นแกนหลักของระบบปฏิบัติการ Linux (OS) และเป็นอินเทอร์เฟซพื้นฐานระหว่างฮาร์ดแวร์ของคอมพิวเตอร์และกระบวนการต่างๆ
ไม่กี่วันที่ผ่านมา เราแบ่งปันข่าวเกี่ยวกับการเปลี่ยนแปลงอย่างใดอย่างหนึ่งที่นี่ในบล็อก สิ่งที่เราสามารถพบได้ในงานเปิดตัว ของเคอร์เนล Linux 6.9, ซึ่งขณะนี้อยู่ในการพัฒนาและมีการเปลี่ยนแปลงต่างๆ เกิดขึ้นแล้ว และสิ่งที่เราประกาศก็คือ EXT2 ได้ผ่านเข้าสู่หมวดหมู่ที่ล้าสมัยแล้ว และการใช้ไดรเวอร์ NTFS แบบเก่าจะถูกละทิ้งไปเพื่อประโยชน์ของ ไดรเวอร์ที่พัฒนาโดย Paragon Software
ตอนนี้ ในข่าวล่าสุด เกี่ยวกับฟีเจอร์ใหม่ที่ Linux 6.9 จะนำเสนอให้กับเราก็คือ เคอร์เนลเวอร์ชันนี้จะนำมาซึ่งการปรับปรุงที่สำคัญในเวลาเริ่มต้น สำหรับผู้ใช้ที่จัดการระบบที่มี RAM จำนวนมาก โดยเฉพาะระบบนั้น พวกเขาใช้ประโยชน์จากหน้า HugeTLB ซึ่งส่งผลให้เวลาที่ใช้ในการเริ่มต้นเพจเหล่านี้ลดลงอย่างมากในระหว่างกระบวนการบูตระบบ
และการเปลี่ยนแปลงที่เพิ่มเข้ามาใน Linux 6.9 จะช่วยให้ระบบที่มีเพจ HugeTLB จำนวนมากได้รับการลดลงอย่างเห็นได้ชัด ในเวลาเริ่มต้น ตัวอย่างเช่น บนระบบ 2TB ที่เตรียมใช้งานเพจขนาด 1800 1GB ซึ่ง ขณะนี้ใช้เวลาระหว่าง 1 ถึง 2 วินาทีจากทั้งหมด 10 วินาทีซึ่งไม่ต้องสงสัยเลยว่าจะมีการปรับปรุงอย่างมากในช่วงเวลานี้ ในทำนองเดียวกัน บนโฮสต์ Intel ขนาด 12TB ที่มีการจัดเตรียมเพจขนาด 11 หน้าขนาด 776GB ซึ่งอาจใช้เวลานานกว่าหนึ่งนาที คุณจะเห็นการลดลงอย่างมากในเวลาเริ่มต้นเหล่านี้
ความก้าวหน้าเหล่านี้ เกิดขึ้นได้โดยการทำงานเฉพาะของนักพัฒนา Linux Gang Li แห่ง Bytedance ซึ่งใช้ชุดแพทช์ที่ผ่านการตรวจสอบหลายครั้งเพื่อให้มั่นใจว่าการดำเนินการมีประสิทธิภาพ โครงสร้างพื้นฐานเคอร์เนลที่มีอยู่ เช่น padata_do_multithreaded ถูกนำมาใช้โดยมีการปรับเปลี่ยนเพียงเล็กน้อยเพื่อให้ได้ผลลัพธ์เหล่านี้
การอัปเดตสองรายการในเวอร์ชัน 6...
– แก้ไขข้อผิดพลาดที่อาจเกิดขึ้นใน together_bootmem_prealloc_node
การใช้งาน padata_do_multithreaded ช่วยให้มั่นใจได้ว่าแต่ละอย่าง
งาน together_bootmem_prealloc_node จัดการโหนด อย่างไรก็ตาม API อธิบายไว้
ในความคิดเห็น padata_do_multithreaded บ่งชี้ว่า padata_do_multithreaded ด้วย
คุณสามารถกำหนดหลายโหนดให้กับงาน together_bootmem_prealloc_nodeเพื่อหลีกเลี่ยงข้อผิดพลาดที่อาจเกิดขึ้นจากการเปลี่ยนแปลงในอนาคตเป็น padata_do_multithreaded
together_bootmem_prealloc_parallel ได้รับการแนะนำเพื่อห่อไฟล์
together_bootmem_prealloc_node.
ประโยชน์ ของการปรับปรุงเหล่านี้โดยเฉพาะ โดดเด่นในสภาพแวดล้อมที่ความพร้อมใช้งานของบริการและเวลาทำงานของระบบเป็นสิ่งสำคัญ เช่นเดียวกับในกรณีของไฮเปอร์สเกลเลอร์และองค์กรขนาดใหญ่ที่จัดการเซิร์ฟเวอร์ขนาดใหญ่มาก การลดเวลาเริ่มต้นระหว่างการรีบูตเป็นประโยชน์อย่างยิ่งเพื่อให้แน่ใจว่ามีเวลาทำงานที่รวดเร็วและมีประสิทธิภาพยิ่งขึ้น
นอกเหนือจากนั้น, นอกจากนี้ยังควรกล่าวถึงการเปลี่ยนแปลงอื่นอีกด้วย ซึ่งรวมอยู่ใน Linux 6.9 ซึ่งเป็นแพตช์จากวิศวกร Linux ที่มีประสบการณ์ของ Intel ซึ่ง แนะนำเทคนิคที่ได้รับการปรับปรุงสำหรับการจำกัดแบนด์วิดท์หน่วยความจำในการรีเฟรชแคช x86คล้ายกับที่ใช้โดย Intel ใน CPU RDT และ AMD EPYC พร้อมรหัส resctrl
ผู้เขียนแพทช์กล่าวถึงว่า:
ลูปผลป้อนกลับ MBA_mbps จะเพิ่มการควบคุมปริมาณเมื่อกลุ่มใช้แบนด์วิธมากกว่าที่ผู้ใช้กำหนดไว้ในไฟล์สคีมา และลดการควบคุมปริมาณเมื่ออยู่ต่ำกว่าเป้าหมาย
เป็นมูลค่าการกล่าวขวัญว่าเทคนิคใหม่ในการจำกัดแบนด์วิธหน่วยความจำ ได้รับการออกแบบมาเพื่อจัดการปริมาณงานได้อย่างมีประสิทธิภาพมากขึ้นโดยมีระดับโหลดที่ไม่สม่ำเสมอเพื่อหลีกเลี่ยงการลงโทษที่ไม่จำเป็นซึ่งเกิดขึ้นในเคอร์เนลเวอร์ชันก่อนหน้า
เพื่อหลีกเลี่ยงความผันผวนโดยไม่จำเป็นในการเร่งความเร็วในการวนซ้ำแต่ละครั้ง แฟล็ก "delta_comp" ใช้เพื่อระบุการเปลี่ยนแปลงแบนด์วิดท์ที่เกิดขึ้นจริงที่จะบันทึกในการวนซ้ำครั้งถัดไปใน "delta_bw" การควบคุมปริมาณจะลดลงก็ต่อเมื่อแบนด์วิธปัจจุบันบวก delta_bw ต่ำกว่าเป้าหมายของผู้ใช้
ดังที่ได้กล่าวไว้เช่นนั้น อัลกอริธึมทำงานได้ดีกับปริมาณงานแบนด์วิธคงที่ แต่อาจล้มเหลวหากปริมาณงานเปลี่ยนแปลงเพียงเมื่อการควบคุมปริมาณเปลี่ยนแปลง เพื่อแก้ไขปัญหานี้ จึงมีการนำเทคนิคที่ง่ายกว่ามาใช้เพื่อคำนวณศักยภาพที่เพิ่มขึ้นในแบนด์วิดท์ หากการควบคุมปริมาณลดลงไปยังระดับที่สูงกว่าถัดไป เพื่อให้แน่ใจว่ายังคงอยู่ต่ำกว่าเป้าหมายของผู้ใช้ก่อนที่การควบคุมปริมาณจะลดลง
ถ้าคุณเป็น สนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้คุณสามารถศึกษารายละเอียดได้จากลิงค์ต่อไปนี้: