Canonical ได้เสนอแพตช์เพื่อเร่งการเปิดใช้งานโหมดสลีป

บริษัท Canonical แนะนำ ในรายชื่อผู้รับจดหมายของนักพัฒนาเคอร์เนล Linux ชุดแพตช์พร้อมการใช้งาน การล้างหน่วยความจำแบบฉวยโอกาส (“การเรียกคืนหน่วยความจำแบบฉวยโอกาส”) ซึ่งช่วยให้คุณลดเวลาที่ใช้ในการเข้าสู่โหมดสลีปได้อย่างมาก การเพิ่มประสิทธิภาพทำได้โดยการเรียกใช้การดำเนินการเปิดตัวโครงสร้างหน่วยความจำรองที่ไม่มีข้อมูลเฉพาะและสามารถกู้คืนแบบไดนามิกได้หลังจากกลับจากโหมดสลีป (เช่น พื้นที่ หน่วยความจำที่ไม่ระบุชื่อ และแคชเพจหน่วยความจำต่างๆ) แนวคิดหลักคือหลังจากลบข้อมูลที่ไม่จำเป็นแล้ว ขนาดของภาพหน่วยความจำที่จะบันทึกก่อนเข้าสู่โหมดสลีปจะลดลง และด้วยเหตุนี้ จึงต้องใช้เวลาน้อยลงในการเขียนและอ่านจากสื่อที่ช้า

ตามค่าเริ่มต้น เมื่อบันทึกดัมพ์หน่วยความจำสำหรับการไฮเบอร์เนต เคอร์เนลจะบันทึกหน่วยความจำเหมือนกับแคชทั้งหมด แต่มีความสามารถมาตรฐานในการเพิ่มโครงสร้างที่ไม่จำเป็นโดยการจำลองสภาวะการขาดแคลนทรัพยากรในระยะเริ่มต้นของการเข้าสู่โหมดไฮเบอร์เนต คุณสมบัตินี้สามารถเปิดใช้งานได้โดยใช้พารามิเตอร์ “/sys/power/image_size” และช่วยลดเวลาที่ใช้ในการเข้าสู่โหมดสลีปลงอย่างเห็นได้ชัด Canonical แนะนำให้เพิ่มพารามิเตอร์อีกสองตัว “/sys/power/mm_reclaim/run” และ
“/sys/power/mm_reclaim/release” ซึ่งจะช่วยให้คุณสามารถกระตุ้นการปล่อยโครงสร้างที่ไม่จำเป็นล่วงหน้า เพื่อให้การเปลี่ยนไปใช้โหมดสลีปเกิดขึ้นโดยเร็วที่สุด และการกลับจากโหมดสลีปจะใช้เวลาประมาณเดียวกันกับ เมื่อใช้อันที่มีอยู่ในพารามิเตอร์เคอร์เนล "/sys/power/image_size"

การทดสอบบนระบบที่มี RAM 8 GB และพาร์ติชั่นสลับ 8 GB พร้อมการใช้งานหน่วยความจำ 85% แสดงให้เห็นในการตั้งค่าเริ่มต้น (image_size=default) เวลาในการเข้าสู่โหมดสลีปลดลงจาก 51.56 เป็น 4.19 วินาทีเมื่อเริ่มกระบวนการ การล้างหน่วยความจำส่วนเกิน 60 วินาทีก่อนเข้าสู่โหมดสลีป โหมดสลีป ด้วยการลดขนาดของอิมเมจหน่วยความจำที่เก็บไว้ ระยะเวลาการกู้คืนจึงลดลงจาก 26.34 เป็น 5 วินาที เมื่อระบบเปิดโหมดมาตรฐานสำหรับการล้างหน่วยความจำส่วนเกิน (image_size=0) เวลาในการเข้าสู่โหมดสลีปจะลดลงจาก 73.22 เป็น 5.36 วินาที และเวลาในการกลับจากโหมดสลีปยังคงไม่เปลี่ยนแปลงเลย (ลดลงเพียง เศษของวินาที จาก 5.32 เป็น 5.26 วินาที)

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

ที่มา: opennet.ru

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