WSL 2 ตอนนี้มีคุณสมบัติการเรียกคืนหน่วยความจำ
ด้วยการเปิดตัว Windows 10 Build 18917 Microsoft ได้แนะนำ WSL 2 ให้กับ Insiders ซึ่งเป็นระบบย่อย Windows สำหรับ Linux 2 มันจัดส่งเคอร์เนลลินุกซ์จริงกับ Windows ซึ่งจะทำให้ความเข้ากันได้ของการเรียกระบบเต็มรูปแบบเป็นไปได้ นี่เป็นครั้งแรกที่เคอร์เนล Linux มาพร้อมกับ Windows Windows 10 build 19013 เพิ่มคุณสมบัติ WSL 2 ที่ยอดเยี่ยมอีกตัวหนึ่ง - Memory Reclaim ซึ่งช่วยให้ระบบโฮสต์นำหน่วยความจำกลับมาใช้ใหม่ซึ่งไม่จำเป็นสำหรับกระบวนการ Linux ใดๆ อีกต่อไป
โฆษณา
ก่อนหน้านี้ เมื่อความต้องการหน่วยความจำของ WSL2 Virtual Machine (VM) เพิ่มขึ้น ไม่ว่าจะจากเวิร์กโฟลว์ของคุณหรือโดย เคอร์เนล Linux หน่วยความจำโดยรวมที่จัดสรรให้กับ VM ก็จะเติบโตด้วยการจัดสรรหน่วยความจำเพิ่มเติมจาก เจ้าภาพ. แต่เมื่อเวิร์กโฟลว์เสร็จสิ้น หน่วยความจำนั้นที่เวิร์กโฟลว์ไม่ต้องการแล้วจะไม่ถูกปล่อยกลับไปยังโฮสต์ ขณะนี้ ด้วยการเรียกคืนหน่วยความจำใน WSL 2 เมื่อหน่วยความจำใน Linux ไม่จำเป็นอีกต่อไป ก็สามารถรายงานกลับไปยังโฮสต์ที่จะปล่อยว่างได้ และ WSL 2 VM ของคุณจะลดขนาดหน่วยความจำลง
ก่อน:
หลังจาก:
ดูวิดีโอต่อไปนี้:
มันทำงานอย่างไร
คุณลักษณะนี้ขับเคลื่อนโดย a แพทช์เคอร์เนลลินุกซ์ ที่ช่วยให้บล็อกหน่วยความจำขนาดเล็กที่อยู่ติดกันถูกส่งกลับไปยังเครื่องโฮสต์เมื่อไม่จำเป็นต้องใช้ใน Linux guest อีกต่อไป ทีม WSL ได้อัปเดต เคอร์เนลลินุกซ์ใน WSL2 เพื่อรวมแพตช์นี้และ Hyper-V ที่แก้ไขเพื่อรองรับคุณสมบัติการรายงานหน้านี้ เพื่อที่จะคืนหน่วยความจำไปยังโฮสต์ให้ได้มากที่สุด WSL จะบีบอัดหน่วยความจำเป็นระยะเพื่อให้แน่ใจว่ามีหน่วยความจำว่างในบล็อกที่อยู่ติดกัน สิ่งนี้จะทำงานเมื่อ CPU ของคุณไม่ได้ใช้งานเท่านั้น คุณสามารถดูเมื่อสิ่งนี้เกิดขึ้นโดยมองหาข้อความ 'WSL2: การดำเนินการบีบอัดหน่วยความจำ' ภายในเอาต์พุตของ dmesg
สั่งการ. หากคุณเป็นผู้ใช้ระดับสูง คุณสามารถกำหนดค่าพฤติกรรมนี้โดยแก้ไขค่าใน .wslconfig. กรุณาตรวจสอบ บันทึกประจำรุ่น WSL 19013 เพื่อดูตัวเลือกเหล่านี้ หรือหากคุณต้องการเรียกใช้คำสั่ง Linux นี้ด้วยตนเอง คุณสามารถเรียกใช้คำสั่ง echo 1 > /proc/sys/vm/compact_memory
ในฐานะผู้ใช้รูท
คุณสามารถดูรายละเอียดทางเทคนิคและตัวอย่างเพิ่มเติมได้ใน โพสต์บล็อกอย่างเป็นทางการ.