Trả lời nhanh: WSL2 cho bạn một Linux thật chạy ngay trong Windows, miễn phí và tiện. VPS là máy Linux riêng chạy suốt trên internet. Chọn theo nhu cầu: WSL2 đủ cho việc lập trình hằng ngày trên máy cá nhân; VPS cần thiết khi bạn phải chạy dịch vụ liên tục, cho người khác truy cập, hoặc làm việc từ nhiều máy. Hai bẫy hiệu năng của WSL2 phải biết: đặt mã nguồn sai ổ đĩa và bộ nhớ tự phình.
Lập trình viên dùng Windows ở Việt Nam gần như đều đã cài WSL2, và nhiều người dừng ở đó vì thấy đủ. Đủ hay không phụ thuộc vào việc bạn làm, và ranh giới khá rõ. Bài này vẽ ranh giới đó, kèm hai chỗ chỉnh giúp WSL2 chạy nhanh hơn hẳn mặc định.
WSL2 mạnh ở đâu
Nó không phải bản mô phỏng mà là một nhân Linux thật chạy trên lớp ảo hóa của Windows. Nghĩa là Docker chạy được, các công cụ dòng lệnh chạy đúng như trên Linux, và bạn không gặp những khác biệt khó chịu về đường dẫn hay quyền file như thời trước.
Ba điểm cộng lớn:
- Miễn phí và có sẵn, bật bằng một lệnh trên Windows đời mới.
- Chung máy với công cụ Windows. Bạn mở file trong trình soạn thảo trên Windows mà vẫn chạy lệnh trong Linux.
- Không cần mạng. Mất internet vẫn code bình thường.
Với phần lớn công việc web, di động và viết script, WSL2 đủ và đủ hẳn. Đừng thuê máy chủ chỉ vì nghe nói nên có.
Hai bẫy hiệu năng phải sửa ngay
Bẫy thứ nhất: để mã nguồn bên ổ đĩa Windows. Nhiều người giữ dự án trong thư mục quen thuộc của Windows rồi truy cập từ Linux. Cách đó khiến mọi thao tác file đi qua một lớp chuyển đổi, và với dự án nhiều file nhỏ thì chậm gấp nhiều lần.
# Cham: du an nam ben Windows/mnt/c/Users/ban/du-an # Nhanh: du an nam trong o dia cua Linux~/du-anĐây là thay đổi cho hiệu quả lớn nhất mà nhiều người không biết. Chép dự án vào thư mục nhà của Linux là xong, và các trình soạn thảo hiện đại vẫn mở được qua cơ chế kết nối từ xa.
Bẫy thứ hai: bộ nhớ tự phình. Mặc định WSL2 lấy dần RAM và không trả lại ngay, nên sau vài giờ máy bạn hết bộ nhớ dù chẳng chạy gì nặng.
# C:Users<ban>.wslconfig[wsl2]memory=8GBprocessors=4swap=2GBKhi nào WSL2 không đủ
Bốn tình huống rõ ràng cần một máy chủ thật:
- Dịch vụ phải chạy liên tục. Đóng laptop là WSL2 dừng. Một tác nhân AI chạy dài, một bot, một tác vụ định kỳ đều cần máy luôn bật, theo bài chạy Claude Code trên VPS.
- Người khác cần truy cập. Cho khách xem bản thử, cho đội kiểm thử vào, hoặc nhận webhook từ dịch vụ bên ngoài. Mở WSL2 ra internet là việc phiền và không nên.
- Làm việc từ nhiều máy. Môi trường nằm trên máy chủ thì bạn nối vào từ đâu cũng thấy nguyên trạng.
- Việc nặng kéo dài. Build lớn hay chạy kiểm thử dài làm laptop nóng và ì, trong khi bạn còn phải làm việc khác.
So sánh thẳng vài mặt
Chi phí: WSL2 miễn phí, VPS trả theo tháng. Nhưng nếu bạn đang tính mua thêm RAM cho laptop để chạy nổi môi trường, hãy so khoản đó với vài tháng thuê máy.
Hiệu năng: WSL2 dùng chính CPU máy bạn nên với laptop mạnh thì nhanh hơn VPS phổ thông. Ngược lại, VPS không tranh tài nguyên với trình duyệt và các ứng dụng đang mở.
Mạng: VPS nằm trong trung tâm dữ liệu nên tải thư viện và đẩy bản dựng nhanh hơn nhiều so với mạng nhà. Với dự án phải kéo hàng trăm MB phụ thuộc, khác biệt rất rõ.
Độ bền: Laptop hỏng là mất môi trường, còn máy chủ có sao lưu. Đây là điểm ít người nghĩ tới cho tới ngày ổ đĩa hỏng thật.
Mô hình dùng cả hai
Cách nhiều người dừng lại sau khi thử qua các phương án:
- WSL2 trên laptop cho việc viết code hằng ngày, chạy thử nhanh, làm khi không có mạng.
- Một VPS chạy các dịch vụ nền, nhận webhook, làm nơi cho khách xem bản thử, và chạy những việc dài hơi.
Để hai môi trường giống nhau, hãy mô tả môi trường bằng file trong repo theo bài devcontainer, và đưa cấu hình cá nhân vào repo dotfiles theo bài dotfiles. Khi đó chuyển qua lại giữa hai bên không phải học lại thói quen nào.
Nối vào VPS thì dùng cơ chế soạn thảo từ xa như trong bài máy dev từ xa, cảm giác gần như làm việc tại chỗ nếu máy chủ đặt trong nước.
Đừng để mã nguồn nằm vắt qua hai hệ thống tệp
# Bay 1: de ma nguon o he thong tep cua Windows roi truy cap qua# Doc ghi qua ranh gioi hai he thong cham hon nhieu lan.# Dung: de ma nguon BEN TRONG he thong tep cua Linux # Do de thay khac bietcd /mnt/c/duan && time git status # chamcd ~/duan && time git status # nhanh hon nhieu # Bay 2: khong gioi han bo nho, no an rat nhieu va khong tra lai ngay# Tao file %USERPROFILE%\.wslconfig:# [wsl2]# memory=4GB# processors=2# swap=2GB# Roi chay: wsl --shutdown # Kiem dung luong file ao dang chiem# Get-ChildItem "$env:LOCALAPPDATA\Packages" -Recurse -Filter "ext4.vhdx"Bẫy thứ nhất là nguyên nhân số một khiến người dùng thấy chậm rồi kết luận công nghệ này kém. Sửa đúng một chỗ này là khác biệt rất rõ.
Khi nào môi trường trên máy cá nhân không đủ
| Tình huống | Vì sao không đủ | Nên chuyển sang |
|---|---|---|
| Việc dài cần chạy khi bạn tắt máy | Tắt máy là dừng | Máy chủ |
| Cần địa chỉ công khai để gửi cho khách xem | Máy cá nhân không có | Máy chủ, hoặc đường hầm |
| Cả đội cần cùng một môi trường | Mỗi máy một kiểu | Máy chủ chung |
| Máy cá nhân yếu, dự án lớn | Chậm và nóng | Máy chủ |
| Cần chạy nhiều dịch vụ 24 giờ | Máy cá nhân không chạy liên tục | Máy chủ |
Máy cá nhân cho việc hằng ngày, máy chủ cho việc nặng
- Môi trường trên máy cá nhân cho việc viết mã hằng ngày và thử nhanh: không tốn thêm tiền, không phụ thuộc mạng.
- Máy chủ cho việc chạy dài, bản xem trước cho khách, cơ sở dữ liệu dùng chung, và quy trình tự động.
- Không phải chọn một. Phần lớn đội dùng cả hai, mỗi cái đúng vai của nó.
- Với khách hàng ở Việt Nam, máy chủ nên đặt trong nước để độ trễ dưới 20 ms. Xem VPS Việt Nam.
Câu hỏi thường gặp
WSL2 có chậm hơn Linux cài thẳng không?
Chậm hơn một chút ở thao tác file, và chênh lệch trở nên rất lớn nếu bạn để dự án bên ổ đĩa Windows. Đặt dự án trong ổ đĩa của Linux thì khác biệt còn nhỏ và phần lớn công việc không cảm nhận được.
Có chạy Docker trong WSL2 được không?
Được và đây là cách chạy Docker phổ biến nhất trên Windows hiện nay. Hiệu năng tốt, chỉ cần nhớ đặt giới hạn bộ nhớ cho WSL2 nếu không muốn máy hết RAM sau vài giờ.
Khi nào nên chuyển hẳn sang VPS?
Khi bạn cần thứ gì đó chạy liên tục cả khi máy tắt, khi người khác cần truy cập vào môi trường của bạn, hoặc khi bạn làm việc luân phiên trên nhiều máy khác nhau.
VPS cấu hình bao nhiêu là đủ để thay laptop?
Dự án web thông thường chạy tốt với 2 vCPU và 4GB. Nếu chạy thêm database, bộ nhớ đệm và các tác vụ nền thì nên từ 4 vCPU và 8GB. Ưu tiên máy đặt trong nước để gõ phím không bị trễ.
