
Trả lời nhanh: Swap là vùng ổ đĩa được trưng dụng làm RAM dự phòng: khi RAM đầy, hệ điều hành chuyển bớt phần ít dùng xuống swap thay vì để OOM killer giết tiến trình. Đổi lại tốc độ: RAM tính bằng nano-giây, swap trên ổ tính bằng micro đến mili-giây. Trên VPS ít RAM, swap 1-2 GB là dây an toàn nên có: build Next.js, cập nhật hệ thống, đợt truy cập đột biến, những cơn khát RAM ngắn sẽ mượn swap rồi trả, thay vì sập. Và chất ổ quyết định độ đau: swap trên NVMe chậm-chấp-nhận-được, trên ổ cơ/network storage là tra tấn.
"Có nên tạo swap cho VPS không?", câu hỏi gây chia rẽ kỳ lạ: phe 'phải có' và phe 'swap là dấu hiệu nghèo RAM' đều có lý một nửa. Bài này ghép hai nửa lại: swap để làm gì, hại ở đâu, tạo thế nào cho đúng, và cách đọc tín hiệu swap để biết lúc nào là bình thường - lúc nào là chuông báo nâng cấp.
- Swap = đệm chống sập, không phải RAM mở rộng để chạy thêm app
- Không swap + hết RAM = OOM killer chọn nạn nhân, thường đúng database của bạn
- Tạo 1-2 GB swapfile + swappiness=10: dùng khi cần, không lạm dụng
- Đọc tín hiệu: swap có dùng chút ít = bình thường; si/so cày liên tục = thiếu RAM thật, nâng gói
Không swap thì chuyện gì xảy ra
RAM đầy mà có tiến trình xin thêm, kernel kích hoạt OOM killer, thuật toán chọn một tiến trình 'đáng giết nhất' để giải phóng RAM. Khẩu vị của nó thường trùng khắc nghiệt với thứ bạn quý nhất: MySQL đang ôm cả GB, tiến trình build đang chạy dở. Triệu chứng kinh điển: build 'chết không lời trăng trối', database tự dưng biến mất lúc 2h sáng, dmesg hiện dòng "Out of memory: Killed process". Swap là tấm đệm dưới vực đó: cơn khát RAM tạm thời được đỡ bằng ổ đĩa, chậm đi nhưng sống, và với đa số nghiệp vụ, chậm 30 giây ăn đứt sập 30 phút.
Tạo swap đúng bài trong 2 phút
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile && sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab # song qua reboot
# do luong RAM he thong khat den dau roi hay dung swap:
sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.d/99-swap.confHai quyết định trong đó: cỡ, VPS 1-4 GB RAM lấy swap 1-2 GB là vùng hợp lý (bằng hoặc nửa RAM; to hơn chỉ kéo dài cơn hấp hối khi thiếu RAM thật); swappiness=10, bảo kernel: ưu tiên RAM đến gần cùng mới đụng swap (mặc định 60 hơi 'ham' swap cho máy chủ).
Vì sao chất ổ đổi hẳn trải nghiệm swap
Swap là đọc/ghi trang 4KB ngẫu nhiên, đúng bài kiểm tra khắc nghiệt của ổ đĩa. Cùng một cơn mượn swap: ổ NVMe với hàng trăm nghìn IOPS latency dưới trăm micro-giây xử êm, hệ chậm lại kiểu 'hơi ì', vẫn phục vụ được; ổ cơ hay network storage vài trăm-nghìn IOPS biến máy thành tượng, load tăng vọt, SSH cũng khó vào. Đây là lý do lời khuyên 'swap là tra tấn' ra đời từ thời ổ cơ, trên VPS NVMe hiện đại, swap đúng liều là công cụ hoàn toàn tử tế, đặc biệt với gói nhỏ chạy build hoặc cập nhật định kỳ.
Đọc tín hiệu: bình thường hay chuông báo
free -h # cot Swap: used bao nhieu
vmstat 5 # cot si/so: trang swap vao/ra MOI GIAY- Swap used vài trăm MB, si/so ~0: bình thường tốt, kernel cất đồ nguội xuống kho, RAM dành cho việc nóng. Đừng hoảng, đừng swapoff.
- si/so nhảy liên tục hàng nghìn: thrashing, hệ đang cày ổ để sống qua từng giây. Đây là thiếu RAM thật: tìm tiến trình phàm ăn (htop, sort theo RES), hoặc đến giờ nâng gói RAM, swap đã làm xong vai trò báo động của nó.
- Build/tác vụ đêm mượn swap rồi trả: đúng thiết kế, dây an toàn hoạt động.
Tạo vùng nhớ tạm đúng cách, hai phút
# 1. Kiem da co chua swapon --show free -h # 2. Tao tep 4 GB (dieu chinh theo RAM cua may) fallocate -l 4G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile # 3. Giu lai sau khi khoi dong lai echo '/swapfile none swap sw 0 0' >> /etc/fstab # 4. Chinh muc do he thong san sang dung no # Voi may chu: 10 la hop ly, chi dung khi that su can sysctl vm.swappiness=10 echo 'vm.swappiness=10' >> /etc/sysctl.conf # 5. Kiem lai free -h && cat /proc/sys/vm/swappiness
| Bộ nhớ của máy | Vùng nhớ tạm nên đặt | Ghi chú |
|---|---|---|
| 1 GB | 2 GB | Bắt buộc phải có |
| 2 GB | 2 tới 4 GB | Rất nên có |
| 4 GB | 2 tới 4 GB | Nên có |
| 8 GB trở lên | 2 GB | Chủ yếu để chống bị dừng tiến trình đột ngột |
Bảng phân biệt tín hiệu bình thường và báo động
| Bạn thấy | Nghĩa là | Nên làm |
|---|---|---|
| Vùng nhớ tạm dùng vài trăm MB, ổn định | Bình thường, hệ thống đẩy phần ít dùng ra | Không phải làm gì |
| Dùng tăng dần và không giảm | Bộ nhớ thật đang thiếu | Thêm RAM, hoặc giảm số tiến trình |
| Máy chậm hẳn, cột tráo trang trong vmstat khác 0 liên tục | Đang tráo trang liên tục, đây là tình trạng tệ nhất | Thêm RAM ngay, vùng nhớ tạm không cứu được |
| Không có vùng nhớ tạm, thỉnh thoảng tiến trình bị dừng | Hệ thống hết bộ nhớ và phải giết tiến trình | Tạo vùng nhớ tạm ngay |
# Theo doi lien tuc, cot si va so trong vmstat la tin hieu quan trong nhat
vmstat 2 30
# Xem tien trinh nao dung vung nho tam nhieu nhat
for f in /proc/*/status; do
awk '/^Name|^VmSwap/{printf "%s ", $2} END{print ""}' "$f"
done | sort -k2 -hr | head -10Điều cần nói rõ: vùng nhớ tạm là lưới an toàn chứ không phải cách thay cho bộ nhớ thật. Nó cứu bạn khỏi việc tiến trình bị giết đột ngột trong đợt cao điểm ngắn. Nếu máy dùng nó liên tục thì câu trả lời đúng là thêm bộ nhớ, và ổ NVMe chỉ làm tình trạng đó bớt đau chứ không chữa khỏi.
Câu hỏi thường gặp
VPS RAM lớn (8-16 GB) có cần swap không?
Vẫn nên có 1-2 GB làm lưới cuối: một tiến trình leak RAM lúc nửa đêm sẽ chậm-mà-sống thay vì OOM killer xử đẹp database. Chi phí gần bằng không, bảo hiểm thì thật.
Swap có làm mòn ổ NVMe không?
Về lý thuyết ghi swap tính vào tuổi thọ ổ; thực tế mức swap của VPS bình thường quá nhỏ so với sức chịu ghi của NVMe enterprise (DWPD cao). Không phải mối lo thực tế, thrashing kéo dài mới là thứ cần xử, vì lý do hiệu năng chứ chưa tới lý do tuổi thọ.
zram/zswap là gì, có nên dùng thay swapfile?
Nén RAM làm swap trong chính RAM, hay cho máy desktop/RAM cực hẹp. Trên VPS có NVMe, swapfile truyền thống đơn giản và dễ đoán hơn; zram là tối ưu tầng hai khi bạn đã hiểu rõ tải của mình.
Docker/K8s bảo tắt swap thì sao?
Kubernetes có yêu cầu riêng về quản RAM nên khuyến cáo tắt, đúng trong ngữ cảnh đó. VPS đơn chạy app/database/Docker thường: swap nhỏ + swappiness thấp vẫn là khuyến nghị hợp lý.
Bài viết liên quan
- VPS cần bao nhiêu RAM, CPU và ổ cứng
- Thuê VPS giá rẻ 129k: được gì, thiếu gì
- VPS ổ Enterprise U.2 NVMe RAID 10 tại TND
- Tailscale + VPS hub: zero-config VPN cho remote team
- VPS US cho dropship Amazon Etsy: setup + bản quyền
- Dùng proxy hợp pháp VN 2026: Luật BVDLCN 91/2025
- Deploy Next.js preview qua Cloudflare Tunnel trên VPS 2GB không cần Vercel
- Cảnh báo bảo mật cPanel WHM tháng 5/2026: 5 lỗ hổng CVE cần vá ngay
- Paperless-ngx: số hóa hóa đơn giấy tờ, tìm là thấy



