TMO กลไกของ Facebook ที่บันทึก RAM บนเซิร์ฟเวอร์

วิศวกร Facebook เปิดเผยว่า ผ่านรายงานการแนะนำเทคโนโลยี TMO (Transparent Memory Offloading) ปีที่แล้ว ซึ่ง ช่วยให้ประหยัด RAM บนเซิร์ฟเวอร์ได้อย่างมาก โดยการย้ายข้อมูลรองที่ไม่จำเป็นสำหรับการทำงานบนไดรฟ์ราคาถูก เช่น NVMe SSD

Facebook ประมาณการว่า TMO ช่วยประหยัด RAM ได้ระหว่าง 20% ถึง 32% ในแต่ละเซิร์ฟเวอร์ โซลูชันนี้ออกแบบมาเพื่อใช้ในโครงสร้างพื้นฐานที่แอปพลิเคชันทำงานในคอนเทนเนอร์แยก ส่วนประกอบฝั่งเคอร์เนลของ TMO รวมอยู่ในเคอร์เนลลินุกซ์แล้ว

ที่ฝั่งเคอร์เนล Linux การดำเนินการ ของเทคโนโลยี จัดทำโดยระบบย่อย PSI (Pressure Stall Information) ให้มาในเวอร์ชัน 4.20

PSI ใช้แล้วในไดรเวอร์หน่วยความจำหมดต่างๆ และช่วยให้วิเคราะห์ข้อมูลเกี่ยวกับเวลารอรับทรัพยากรต่างๆ (CPU, หน่วยความจำ, I/O) ด้วย PSI ตัวประมวลผลพื้นที่ผู้ใช้สามารถประเมินการโหลดระบบและรูปแบบการชะลอตัวได้แม่นยำยิ่งขึ้น ทำให้สามารถตรวจพบความผิดปกติก่อนที่จะมีผลกระทบต่อประสิทธิภาพอย่างเห็นได้ชัด

ในพื้นที่ผู้ใช้ คอมโพเนนต์ Senpai จะรัน TMOซึ่งปรับขีดจำกัดหน่วยความจำแบบไดนามิกสำหรับคอนเทนเนอร์แอปพลิเคชันผ่าน cgroup2 ตามข้อมูลที่ได้รับจาก PSI

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

Transparent Memory Offload (TMO) เป็นโซลูชันของ Meta สำหรับสภาพแวดล้อมศูนย์ข้อมูลที่ต่างกัน แนะนำกลไกเคอร์เนล Linux ใหม่ที่วัดงานที่สูญหายเนื่องจากการขาดแคลนทรัพยากรใน CPU หน่วยความจำและ I/O แบบเรียลไทม์ ด้วยข้อมูลนี้และโดยปราศจากความรู้ใดๆ เกี่ยวกับแอปพลิเคชันล่วงหน้า TMO จะปรับจำนวนหน่วยความจำที่จะถ่ายโอนไปยังอุปกรณ์ที่แตกต่างกันโดยอัตโนมัติ เช่น หน่วยความจำที่บีบอัดหรือ SSD โดยอิงตามลักษณะการทำงานของอุปกรณ์และความไวของแอปพลิเคชันในการเข้าถึงหน่วยความจำที่ช้าลง

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

การขาดการเข้าถึงหน้าหน่วยความจำภายใน 5 นาทีถูกใช้เป็นหนึ่งในเกณฑ์สำหรับการตั้งค่า หน้าเหล่านี้เรียกว่าหน้าเย็นและโดยเฉลี่ยแล้วคิดเป็น 35% ของหน่วยความจำของแอปพลิเคชัน (ขึ้นอยู่กับประเภทของแอปพลิเคชันจะมีการเปลี่ยนแปลงจาก 19% ถึง 65%)

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

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

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

สุดท้ายนี้ หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม สามารถปรึกษารายละเอียดได้ ในลิงค์ต่อไปนี้.


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   เอเลียน dijo

    สามารถใช้กับคอมพิวเตอร์ทั่วไปที่มีแอพปกติได้หรือไม่