Ubuntu 26.10 ปรับกลไกจัดการ RAM ปิดแค่แอปแทนการล่มทั้งระบบ

· By: AttapolK

Ubuntu 26.10 กำลังเปลี่ยนแปลงกลไกการสั่งปิดการทำงานของระบบเมื่อหน่วยความจำ (RAM) หมดลง โดยนโยบายใหม่จะเลือก ปิดแอปพลิเคชันก่อน ขณะที่บริการหลักที่ยึดโยงเซสชันจะถูกจัดลำดับไว้เป็นกลุ่มสุดท้ายที่จะถูกปิด โดยมีการปรับค่า OOM score ของบริการสำคัญ 39 รายการ รวมถึง GNOME Shell และ D-Bus ไปที่ -500

การปรับเปลี่ยนนี้ช่วยให้บริการดังกล่าวมีโอกาสน้อยลงมากที่จะถูกเลือกโดย kernel's OOM killer เพื่อยุติการทำงาน ในทางกลับกัน แอปพลิเคชันที่ใช้หน่วยความจำสูงอย่างเว็บเบราว์เซอร์จะกลายเป็นตัวเลือกแรกๆ ที่ถูกกำจัดแทน เพื่อรักษาภาพรวมของระบบให้ยังทำงานต่อไปได้

นอกจากนี้ Canonical ยังได้ปิดการทำงานของ systemd-oomd check ที่มักทำให้เซสชันของผู้ใช้ดับลงทั้งหมดเมื่อเกิดสภาวะแรงกดดันด้านหน่วยความจำ (memory pressure) โดยนโยบายใหม่นี้ถูกนำมาใช้ใน ubuntu-settings 26.10.1 และเผยแพร่ลงในพื้นที่เก็บข้อมูลของ 26.10 เรียบร้อยแล้ว

Kernel มองเห็นอะไร?

ภายใต้สภาวะหน่วยความจำตึงตัว Kernel จะสร้างรายการกระบวนการ (process) ทั้งหมดและให้คะแนนตามปริมาณหน่วยความจำที่ใช้ จากนั้นจะนำตัวเลขจาก user-space มาบวกเพิ่ม ซึ่ง Ubuntu สามารถปรับค่านี้ได้ตั้งแต่ -1000 ถึง 1000 โดยการตั้งค่าให้อยู่ในระดับต่ำจะช่วยให้กระบวนการนั้นรอดพ้นจากการถูกสั่งปิด

รายงานก่อนหน้านี้ จาก Canonical ระบุว่าบนเดสก์ท็อป Ubuntu 24.10 บริการหลักอย่าง GNOME Shell และ Firefox มีค่าคะแนนอยู่ที่ 100 เท่ากัน ซึ่งอาจทำให้ระบบเลือกปิดตัวใดตัวหนึ่งอย่างไม่เหมาะสม ขณะที่ระบบเบื้องหลังอย่าง dbus-daemon มีค่าต่ำถึง -900 อยู่แล้ว

ปัญหาที่พบคือในบางกรณี OOM killer กลับไปเลือกปิดแอปพลิเคชันขนาดเล็กอย่าง gnome-characters แทนที่จะจัดการกับตัวต้นเหตุที่ใช้ทรัพยากรมหาศาล เช่น Virtual Machines ส่งผลให้การจัดการพลังงานและทรัพยากรไม่มีประสิทธิภาพเท่าที่ควร

คะแนนเป็นเพียงแค่ครึ่งเดียวของเรื่องนี้

Kernel ไม่ใช่กลไกเดียวที่สั่งปิดกระบวนการได้ เพราะยังมี systemd-oomd ที่เฝ้าดูแรงกดดันหน่วยความจำและทำงานได้เร็วกว่าโดยไม่สนใจคะแนน OOM เดิมที Ubuntu ตั้งค่าให้ระบบสั่งปิด session ทันทีเมื่อเกิดแรงกดดันถึง 50% ทำให้การปรับค่า -500 เพียงอย่างเดียวอาจไม่เพียงพอ

แพตช์ ubuntu-settings ตัวเดียวกันนี้ จึงเข้าไปจัดการส่วนของ oomd ด้วยการเปลี่ยนค่า ManagedOOMMemoryPressure เป็น auto แทนการสั่ง kill แบบเดิม ซึ่งผลการทดสอบของ Canonical พบว่าช่วยลดอัตราการล่มของเซสชันจาก 7 ใน 10 ครั้ง จนไม่เหลืออาการล่มเลยหลังการแก้ไข

ต้องการลองใช้หรือไม่?

ผู้ที่สนใจสามารถทดสอบพฤติกรรมใหม่นี้ได้ใน development release ของ Ubuntu โดย Canonical กำลังเปิดรับผลการทดสอบจากผู้ใช้งานที่มี RAM หรือ swap น้อยภายใต้เวิร์กโหลดหนักๆ

หากพบพฤติกรรมผิดปกติ เช่น แอปปิดตัวกะทันหันเกินไปหรือเซสชันค้าง สามารถแจ้งรายงานปัญหาได้ที่ Launchpad เพื่อช่วยพัฒนาให้ระบบมีความเสถียรสูงสุดก่อนการเปิดตัวจริง

Source: It's FOSS
ดูแลงานแปลและเรียบเรียงโดย AttapolK

ความคิดเห็น (0)

เข้าสู่ระบบเพื่อร่วมแสดงความเห็น

สมัครสมาชิก

มาเป็นคนแรกที่แสดงความเห็นกันเลยโบร