การจัดการพื้นที่ดิสก์ของ WSL ก่อให้เกิดการถกเถียงในชุมชนเกี่ยวกับทางเลือกอื่น

ทีมชุมชน BigGo
การจัดการพื้นที่ดิสก์ของ WSL ก่อให้เกิดการถกเถียงในชุมชนเกี่ยวกับทางเลือกอื่น

ผู้ใช้ Windows Subsystem for Linux ( WSL ) ต้องต่อสู้กับปัญหาที่มีมาอย่างยาวนานคือไฟล์ virtual hard disk ที่ขยายตัวเมื่อเวลาผ่านไป แต่ไม่เคยหดตัวลงกลับมา แม้หลังจากลบไฟล์ภายในสภาพแวดล้อม Linux แล้ว ปัญหานี้ได้จุดประกายให้เกิดการอภิปรายที่มีชีวิตชีวาในชุมชนเกี่ยวกับแนวทางที่ดีที่สุดในการเรียกคืนพื้นที่ดิสก์และว่าการใช้งานปัจจุบันของ Microsoft สามารถปรับปรุงได้หรือไม่

วิธี Manual Compaction เทียบกับ Export-Import

ชุมชนได้ระบุแนวทางหลักสองแนวทางในการแก้ไขปัญหาพื้นที่ดิสก์ของ WSL วิธีแบบดั้งเดิมเกี่ยวข้องกับการใช้ยูทิลิตี้ DiskPart ของ Windows เพื่อบีบอัด VHDX ไฟล์ด้วยตนเอง ซึ่งต้องปิด WSL instances และรันคำสั่งแบบ administrative อย่างไรก็ตาม ผู้ใช้หลายคนชอบแนวทาง export-import มากกว่า ซึ่งใช้ฟังก์ชัน export ในตัวของ WSL เพื่อสร้างไฟล์บีบอัดของ distribution แล้วนำเข้ากลับมาเป็น instance ใหม่ วิธีนี้มักจะง่ายและเชื่อถือได้มากกว่า แม้ว่าจะต้องรีเซ็ต username เริ่มต้นและการตั้งค่าอื่นๆ

เครื่องมือที่พัฒนาโดยชุมชนหลายตัวได้เกิดขึ้นเพื่อทำให้กระบวนการเหล่านี้เป็นแบบอัตโนมัติ รวมถึง wslcompact และ WSL-VHDX-Compact ซึ่งทั้งคู่มีให้บน GitHub เครื่องมือเหล่านี้จัดการรายละเอียดทางเทคนิคโดยอัตโนมัติ ทำให้การจัดการพื้นที่ดิสก์เข้าถึงได้ง่ายขึ้นสำหรับผู้ใช้ทั่วไป

เครื่องมือที่พัฒนาโดยชุมชน

  • wslcompact: ใช้วิธี wsl --export สำหรับการบีบอัด
  • WSL-VHDX-Compact: สคริปต์อัตโนมัติที่ใช้ PowerShell
  • npiperelay: โซลูชันพร็อกซี SSH agent สำหรับการผสานรวมกับ 1Password
  • เครื่องมือทั้งสองมีให้ใช้งานบน GitHub พร้อมเวิร์กโฟลว์อัตโนมัติ
การสำรวจวิธีการต่างๆ ในการเรียกคืนพื้นที่ดิสก์ใน WSL รวมถึงวิธีการแบบแมนนวลและอัตโนมัติ
การสำรวจวิธีการต่างๆ ในการเรียกคืนพื้นที่ดิสก์ใน WSL รวมถึงวิธีการแบบแมนนวลและอัตโนมัติ

ข้อจำกัดทางเทคนิคและแนวทางแก้ไขที่เสนอ

สาเหตุหลักของปัญหาพื้นที่ดิสก์ของ WSL อยู่ที่วิธีที่ Hyper-V จัดการ virtual disks เมื่อเปรียบเทียบกับแพลตฟอร์มเสมือนจริงอื่นๆ ไม่เหมือนกับ VirtualBox ที่รองรับการทำงาน live TRIM ที่หด disk images โดยอัตโนมัติเมื่อระบบปฏิบัติการแขกลบไฟล์ Hyper-V ขาดความสามารถนี้ ซึ่งหมายความว่าแม้เมื่อผู้ใช้ลบข้อมูลหลายกิกะไบต์ภายในสภาพแวดล้อม Linux ไฟล์ VHDX พื้นฐานยังคงรักษาขนาดที่ใหญ่กว่าไว้

สมาชิกชุมชนได้แนะนำว่า sparse files อาจให้ทางออกที่สง่างามกว่าสำหรับปัญหานี้ Sparse files บน NTFS สามารถจัดสรรพื้นที่แบบไดนามิกตามต้องการ ซึ่งอาจขจัดความจำเป็นในการบีบอัดด้วยตนเองทั้งหมด เมื่อไฟล์ถูกลบภายในสภาพแวดล้อม Linux พื้นที่ที่สอดคล้องกันใน sparse file สามารถเรียกคืนโดยอัตโนมัติผ่านการทำงาน hole punching

การเปรียบเทียบทางเทคนิค: WSL เทียบกับ Virtualization อื่นๆ

คุณสมบัติ WSL/Hyper-V VirtualBox ผลกระทบ
การรองรับ Live TRIM ไม่รองรับ รองรับ ต้องทำการบีบอัดด้วยตนเอง
การย่อขนาดอัตโนมัติ ไม่รองรับ รองรับ พื้นที่ดิสก์สะสมเพิ่มขึ้นเรื่อยๆ
การรองรับ Sparse File รองรับแบบจำกัด รองรับ การใช้พื้นที่มีประสิทธิภาพน้อยกว่า
การจัดการ Block การจัดสรรแบบคงที่ แบบไดนามิก ค่าใช้จ่ายในการบำรุงรักษาสูงกว่า

ประสบการณ์ผู้ใช้และผลกระทบต่อ Workflow

ความท้าทายในการจัดการพื้นที่ดิสก์ได้นำผู้ใช้บางคนไปสู่การพิจารณา development workflows ของพวกเขาใหม่ทั้งหมด แม้ว่า WSL จะมีข้อได้เปรียบอย่างมากสำหรับนักพัฒนาที่ต้องการเครื่องมือ Linux บนระบบ Windows แต่ภาระในการจัดการขนาด virtual disk ได้พิสูจน์แล้วว่าน่าหงุดหงิดพอที่จะผลักดันผู้ใช้บางคนไปสู่ทางเลือกอื่น

ฉันเลิกใช้ WSL แล้ว มันทำให้ชีวิตยากเกินไป dual disk เป็นปัญหา สอง network endpoints สอง firewalls สอง hypervisors ที่แตกต่างกันที่คุณสามารถเลือกได้ ซึ่งบางสิ่งคาดหวังหนึ่ง บางสิ่งคาดหวังอีกอันหนึ่ง

คนอื่นๆ โต้แย้งว่า WSL ยังคงมีคุณค่าแม้จะมีข้อจำกัดเหล่านี้ โดยเฉพาะสำหรับผู้ใช้ที่ทำงานหลักบน Windows แต่ต้องการเข้าถึงเครื่องมือพัฒนา Linux เป็นครั้งคราว ความสะดวกในการมีทั้งสองสภาพแวดล้อมพร้อมใช้งานโดยไม่ต้อง dual-boot มักจะมีน้ำหนักมากกว่าภาระในการจัดการดิสก์

คำแนะนำจากชุมชน

สำหรับผู้ใช้ที่ยังคงใช้ WSL ต่อไป ชุมชนแนะนำให้รันคำสั่ง fstrim ภายในสภาพแวดล้อม Linux ก่อนพยายามทำการบีบอัดใดๆ สิ่งนี้ช่วยให้มั่นใจว่าระบบไฟล์ Linux ทำเครื่องหมายพื้นที่ที่ลบแล้วอย่างเหมาะสมว่าพร้อมสำหรับการเรียกคืน นอกจากนี้ ผู้ใช้ควรทราบว่า Optimize-VHD PowerShell cmdlet สามารถทำหน้าที่เดียวกันกับการทำงาน DiskPart ด้วยตนเอง ซึ่งอาจทำให้กระบวนการง่ายขึ้น

การอภิปรายที่กำลังดำเนินอยู่เน้นย้ำทั้งจุดแข็งและข้อจำกัดของ WSL ในฐานะแพลตฟอร์มพัฒนา ในขณะที่แสดงให้เห็นความเฉลียวฉลาดของชุมชนในการพัฒนาวิธีแก้ปัญหาสำหรับตัวเลือกการใช้งานของ Microsoft

อ้างอิง: How to Free Up and Automatically Manage Disk Space for WSL on Windows 10/11