Cấu Hình WSL2 Chống Tràn RAM, Tối Ưu RAM Bằng Zram

Cấu Hình WSL2 Chống Tràn RAM, Tối Ưu RAM Bằng Zram

Hướng dẫn cấu hình WSL2 chống tràn RAM, tối ưu RAM bằng Zram trên Ubuntu giúp chạy Linux mượt, ổn định và không chiếm hết bộ nhớ Windows.

Windows Subsystem for Linux 2 (WSL2) mang lại trải nghiệm Linux gần như thật ngay trong Windows, nhưng đi kèm với đó là một vấn đề khiến rất nhiều người đau đầu: RAM bị WSL2 “ăn” không giới hạn. Không ít trường hợp Windows bị giật, lag nặng, thậm chí đứng máy chỉ vì một container Docker hay tiến trình Linux chạy âm thầm trong WSL2.

Khi bạn dùng Ubuntu trên WSL2 để chạy Docker, Node.js, Python, AI/ML hay server backend, việc cấu hình WSL2 chống tràn RAM không còn là tuỳ chọn, mà là điều bắt buộc. Bài viết này sẽ hướng dẫn bạn cách kiểm soát RAM WSL2, đồng thời tối ưu bộ nhớ bằng Zram để hệ thống vừa mượt, vừa ổn định lâu dài.

Vì sao cần cấu hình WSL2 chống tràn RAM?

Khác với WSL1, WSL2 chạy trên một máy ảo nhẹ (Lightweight VM). Điều này giúp hiệu năng cao hơn, tương thích Linux tốt hơn, nhưng cũng kéo theo một đặc điểm nguy hiểm: WSL2 sẽ tự động “xin” RAM theo nhu cầu và không trả lại RAM cho Windows nếu không cấu hình giới hạn.

WSL2 không biết “đủ là đủ”. Nếu bạn không giới hạn, nó sẽ dùng RAM cho đến khi Windows bắt đầu… thở oxy.

Các tình huống thường gặp:

  1. Docker trên WSL2 chiếm 70–90% RAM.
  2. VS Code Remote + WSL gây full RAM dù project nhỏ.
  3. Chạy model AI/ML khiến Windows lag toàn hệ thống.
  4. WSL2 không giải phóng RAM sau khi dừng tiến trình.

Giải pháp đúng không phải là “mua thêm RAM”, mà là cấu hình WSL2 + Zram đúng cách.

Cơ chế quản lý RAM của WSL2 hoạt động như thế nào?

WSL2 sử dụng Hyper-V VM backend. RAM được cấp phát động nhưng không bị thu hồi tự động. Điều này khác hoàn toàn với máy ảo truyền thống có giới hạn cứng.

Nói đơn giản: WSL2 rất giỏi dùng RAM, nhưng rất kém trả RAM.

Vì vậy, nếu không giới hạn từ Windows và không tối ưu swap từ Linux, bạn sẽ gặp hiện tượng:

  • RAM Windows trống nhưng không dùng được
  • Task Manager báo WSL chiếm bộ nhớ lớn
  • Windows phản hồi chậm dần theo thời gian

Bước 1: Giới hạn RAM WSL2 bằng file .wslconfig

Đây là bước bắt buộc đầu tiên trong cấu hình WSL2 chống tràn RAM.

Tạo hoặc chỉnh sửa file .wslconfig

Mở Notepad và tạo file tại đường dẫn:

C:\Users\TÊN_USER\.wslconfig

Nội dung khuyến nghị:

 [wsl2] memory=8GB processors=4 swap=2GB swapFile=C:\\wsl\\wsl-swap.vhdx localhostForwarding=true 

Không nên cấp RAM vượt quá 50–60% tổng RAM máy để Windows còn không gian hoạt động.

Áp dụng cấu hình

Sau khi lưu file, chạy lệnh:

 wsl --shutdown 

Sau đó mở lại Ubuntu trong WSL2.

Bước này giúp chặn tràn RAM từ gốc, nhưng chưa tối ưu hiệu suất bộ nhớ.

Bước 2: Zram là gì và vì sao nên dùng cho WSL2?

Zram là một cơ chế nén RAM, cho phép dùng một phần RAM làm swap nén thay vì ghi xuống ổ cứng. Điều này đặc biệt hiệu quả trong môi trường:

  • Máy ảo
  • Docker / container
  • WSL2
Zram giúp “RAM chứa được nhiều RAM hơn” nhờ nén dữ liệu ít dùng.
Xem Thêm

Lợi ích khi dùng Zram trên Ubuntu WSL2:

  • Giảm áp lực RAM thật
  • Hạn chế swap ra disk (chậm)
  • Hệ thống phản hồi nhanh hơn
  • Chạy nhiều service cùng lúc ổn định hơn

Bước 3: Cài đặt và cấu hình Zram trên Ubuntu WSL2

Cài gói Zram

 sudo apt update sudo apt install zram-tools -y 

Cấu hình dung lượng Zram

Mở file cấu hình:

 sudo nano /etc/default/zramswap 

Cấu hình khuyến nghị:

 ALGO=lz4 PERCENT=50 PRIORITY=100 

PERCENT=50 nghĩa là Zram sẽ chiếm tối đa 50% RAM WSL2 đã được cấp.

Kích hoạt Zram

 sudo systemctl restart zramswap 

Kiểm tra trạng thái:

 swapon --show 
Nếu thấy zram0 xuất hiện, Zram đã hoạt động thành công.

Bước 4: Tối ưu swappiness cho Ubuntu trên WSL2

Swappiness quyết định mức độ Linux ưu tiên swap. Với Zram, bạn nên tăng swappiness để tận dụng nén RAM.

 sudo sysctl vm.swappiness=100 

Để lưu vĩnh viễn:

 echo "vm.swappiness=100" | sudo tee -a /etc/sysctl.conf 

So sánh hiệu quả trước và sau khi cấu hình WSL2 + Zram

Tiêu chí WSL2 mặc định WSL2 + Zram
Kiểm soát RAM Kém Rất tốt
Hiệu năng khi full RAM Giật, lag Ổn định
Docker / Container Dễ crash Mượt, ít lỗi
Ảnh hưởng Windows Cao Thấp

Những lỗi thường gặp khi cấu hình WSL2 chống tràn RAM

Ngay cả người có kinh nghiệm cũng hay mắc các lỗi sau:

  • Giới hạn RAM quá thấp khiến build chậm
  • Bật swap disk quá lớn gây chậm hệ thống
  • Không restart WSL sau khi chỉnh .wslconfig
  • Cấu hình Zram vượt quá RAM thực tế
Luôn kiểm tra lại bằng free -h và htop sau khi cấu hình.

FAQ – Câu hỏi thường gặp về cấu hình WSL2 & Zram

WSL2 có tự giải phóng RAM không?

Không. WSL2 chỉ xin thêm RAM khi cần và gần như không trả lại cho Windows nếu không giới hạn.

Zram có an toàn khi dùng lâu dài không?

Có. Zram được dùng rộng rãi trên server và Android, rất ổn định nếu cấu hình đúng.

Có cần tắt swap mặc định khi dùng Zram?

Nên giảm hoặc tắt swap disk để ưu tiên Zram nhằm tránh I/O chậm.

Cấu hình này có ảnh hưởng Windows không?

Không. Ngược lại, Windows sẽ mượt hơn do RAM được kiểm soát tốt.

Kết luận

Cấu hình WSL2 chống tràn RAM không chỉ giúp bạn tránh tình trạng Windows bị lag mà còn nâng cao hiệu suất làm việc lâu dài. Khi kết hợp giới hạn RAM từ Windows với tối ưu bộ nhớ bằng Zram trên Ubuntu, WSL2 sẽ trở thành một môi trường Linux mạnh mẽ, ổn định và đáng tin cậy.

Nếu bạn thường xuyên dùng Docker, lập trình backend hoặc AI trên Windows, đây là cấu hình gần như bắt buộc. Bạn đã từng gặp tình trạng WSL2 chiếm sạch RAM chưa? Hay bạn có cách tối ưu nào khác hiệu quả hơn? Hãy chia sẻ trải nghiệm của bạn ở phần bình luận bên dưới.

Đăng nhận xét