Cấu hình swap hợp lý cho VPS RAM thấp năm 2026

VPS RAM thấp (1GB, 2GB) thường rơi vào tình trạng đang chạy WordPress hay n8n thì bỗng dưng process bị kill, SSH thì chậm rì. Nguyên nhân chủ yếu là hết RAM và kernel kích hoạt OOM Killer. Cấu hình swap hợp lý cho VPS RAM thấp sẽ là lớp đệm giúp server không sập giữa chừng, nhưng nếu đặt sai thì swap còn làm hệ thống ì hơn. Bài này áp dụng cho Ubuntu 24.04 LTS, Debian 12, AlmaLinux 9 với quyền root hoặc sudo.
Tóm tắt nhanh
- VPS RAM 1GB nên tạo swap 2GB, RAM 2GB nên tạo swap 2GB, RAM 4GB có thể không cần swap hoặc để 2GB.
- Đặt
vm.swappiness=10cho server chạy ứng dụng, không dùng giá trị mặc định 60. - Đặt
vm.vfs_cache_pressure=50để giữ page cache lâu hơn, giảm áp lực đọc lại từ disk. - Swap trên file (swapfile) dễ thay đổi kích thước hơn swap partition, nên dùng file.
Vì sao VPS RAM thấp cần swap và vì sao swap không phải là phao cứu sinh
Swap là vùng trên ổ đĩa được kernel dùng làm bộ nhớ ảo khi RAM đầy. Khi một tiến trình không dùng tới dữ liệu trong một thời gian, kernel có thể đẩy nó xuống swap để giải phóng RAM cho tiến trình đang hoạt động. Với VPS RAM thấp, swap giúp tránh tình trạng OOM Killer tàn sát các tiến trình quan trọng như MySQL, PHP-FPM hay Docker container.
Tuy nhiên cần nói thẳng: swap không thể thay thế RAM. NVMe trên VPS hiện nay có tốc độ đọc ghi rất nhanh, nhưng vẫn chậm hơn RAM hàng chục lần. Nếu hệ thống phụ thuộc quá nhiều vào swap, thay vì sập thì server sẽ chạy chậm rề rề. Vì vậy mục tiêu của bài này là cấu hình swap hợp lý để nó là lớp an toàn, không phải là giải pháp chính.
Yêu cầu trước khi bắt đầu
- VPS chạy Ubuntu 24.04, Debian 12, hoặc AlmaLinux 9. Các bước có thể áp dụng cho bản khác nhưng lệnh có thể sai khác đôi chút.
- Quyền root hoặc user có quyền sudo.
- Kiểm tra dung lượng ổ đĩa trống trước khi tạo swap:
df -h. Swap file chiếm đúng dung lượng bạn cấp, đừng tạo swap 2GB khi ổ chỉ còn 1.5GB.
Bước 1 - Kiểm tra swap hiện tại và dung lượng RAM
Trước khi thay đổi, xem hệ thống đang có swap chưa và RAM bao nhiêu:
free -h
swapon --show
free -h hiển thị RAM và swap đang dùng. swapon --show liệt kê các vùng swap đang hoạt động. Nếu lệnh thứ hai không trả về gì nghĩa là VPS chưa có swap. Nhiều VPS giá rẻ hiện nay mặc định không bật swap, bạn phải tự tạo.
Kiểm tra thêm dung lượng ổ đĩa để chắc chắn đủ chỗ:
df -h /
Bước 2 - Xác định dung lượng swap phù hợp
Không có con số áp dụng cho mọi trường hợp, nhưng với VPS RAM thấp thì quy tắc dưới đây là điểm khởi đầu tốt. Cách tính theo khuyến nghị phổ biến từ tài liệu của các nhà cung cấp lớn như DigitalOcean và Red Hat:
| Dung lượng RAM | Dung lượng swap đề xuất | Ghi chú |
|---|---|---|
| 1GB | 2GB | Gấp đôi RAM, đủ cho WordPress hoặc n8n cơ bản |
| 2GB | 2GB | Bằng RAM, cân bằng giữa an toàn và tốc độ |
| 4GB | 2GB hoặc không cần | Nếu chạy ứng dụng nhẹ thì không cần swap |
| 8GB trở lên | Tùy ứng dụng | Thường không cần, trừ khi chạy workload đặc thù |
Với VPS RAM 1GB, swap 2GB là mức an toàn. Nhiều hơn nữa không giúp ích gì nhiều vì khi hệ thống phải dùng tới hơn 2GB swap nghĩa là nó đã quá tải, lúc đó mọi thứ sẽ chậm không chịu nổi. Với RAM 2GB, swap 2GB là mức hợp lý, vừa đủ làm vùng đệm khi có đợt tăng đột biến.
Bước 3 - Tạo swap file trên Ubuntu 24.04 và Debian 12
Dùng swap file thay vì swap partition vì dễ thay đổi kích thước về sau. Các lệnh dưới đây chạy trên Ubuntu 24.04 và Debian 12.
Tạo file swap 2GB:
sudo fallocate -l 2G /swapfile
Nếu lệnh fallocate báo lỗi, dùng phương án thay thế:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
Phân quyền đúng chuẩn để chỉ root mới đọc được (tránh cảnh báo bảo mật):
sudo chmod 600 /swapfile
Định dạng file thành swap và kích hoạt:
sudo mkswap /swapfile
sudo swapon /swapfile
Xác minh swap đã hoạt động:
sudo swapon --show
Output mong đợi tương tự:
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -2
Bước 4 - Tạo swap file trên AlmaLinux 9
AlmaLinux 9 cũng dùng swap file tương tự, nhưng cần kiểm tra SELinux. Nếu SELinux đang bật (mặc định ở chế độ Enforcing), thêm context đúng:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Nếu gặp lỗi liên quan SELinux, chạy lệnh gán context:
sudo semanage fcontext -a -t swapfile_t /swapfile
sudo restorecon -v /swapfile
Bước 5 - Bật swap lâu dài qua /etc/fstab
Lệnh swapon chỉ có tác dụng đến lần reboot. Để swap tự động kích hoạt mỗi khi khởi động, thêm vào /etc/fstab:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Kiểm tra lại file để chắc chắn dòng đã được thêm:
cat /etc/fstab
Riêng AlmaLinux 9, sau khi sửa fstab cần chạy kiểm tra để tránh lỗi khi boot:
sudo findmnt --verify
Bước 6 - Tinh chỉnh swappiness cho VPS RAM thấp
Giá trị vm.swappiness điều khiển mức độ ưu tiên kernel dùng swap. Giá trị mặc định là 60, nghĩa là kernel khá thoải mái đẩy dữ liệu xuống swap. Với VPS RAM thấp, để 60 sẽ khiến hệ thống dùng swap quá sớm, làm chậm ứng dụng dù RAM vẫn còn trống.
Với server chạy ứng dụng (web, database, n8n), đặt vm.swappiness=10 là hợp lý. Kernel sẽ cố giữ dữ liệu trong RAM lâu nhất có thể, chỉ dùng swap khi thực sự cần.
Xem giá trị hiện tại:
cat /proc/sys/vm/swappiness
Thay đổi tạm thời (mất sau reboot):
sudo sysctl vm.swappiness=10
Để thay đổi lâu dài, tạo file cấu hình trong /etc/sysctl.d/:
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swap.conf
Nạp cấu hình ngay lập tức:
sudo sysctl --system
Bước 7 - Điều chỉnh vm.vfs_cache_pressure
Tham số vm.vfs_cache_pressure quyết định mức độ kernel thu hồi page cache cho inode và dentry. Giá trị mặc định 100 nghĩa là kernel thu hồi cache này khá mạnh tay. Với VPS RAM thấp, bạn nên giảm xuống 50 để kernel giữ cache nhiều hơn, giảm số lần đọc lại từ ổ đĩa.
Cách cài, thêm cùng file cấu hình đã tạo ở bước 6:
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.d/99-swap.conf
Nạp lại và xác minh:
sudo sysctl --system
sysctl vm.swappiness vm.vfs_cache_pressure
Output mong đợi:
vm.swappiness = 10
vm.vfs_cache_pressure = 50
Bước 8 - Kiểm tra hiệu quả sau khi cấu hình swap
Sau khi cấu hình xong, theo dõi vài ngày để xem swap có thực sự được dùng đúng lúc. Lệnh hữu ích nhất là:
free -h
Quan sát cột si (swap in) và so (swap out) để biết hệ thống có đang dùng swap quá nhiều không:
vmstat 5
Nếu cột si và so liên tục khác 0 trong thời gian dài, nghĩa là hệ thống đang phụ thuộc vào swap, bạn nên cân nhắc nâng RAM hoặc tối ưu ứng dụng. Nếu hai cột này gần như bằng 0, swap chỉ là lớp dự phòng, đúng như mong muốn.
Kiểm tra thêm các tiến trình đang dùng swap nhiều nhất:
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file 2>/dev/null; done | sort -k 2 -n -r | head -10
Xử lý lỗi thường gặp khi tạo swap
Lỗi: "fallocate failed: Operation not supported". Hệ thống file không hỗ trợ fallocate, thường gặp trên một số VPS dùng filesystem cũ. Chuyển sang lệnh dd như đã nêu ở Bước 3.
Lỗi: "swapon failed: Invalid argument". File chưa được định dạng đúng bằng mkswap, hoặc sai context SELinux trên AlmaLinux. Chạy lại mkswap và kiểm tra SELinux.
Lỗi: VPS không boot sau khi thêm dòng vào fstab. Có thể dòng fstab bị sai hoặc swap file không tồn tại. Truy cập VPS qua console của nhà cung cấp (thueVPS có sẵn console trong panel), sửa file /etc/fstab bằng nano hoặc vi, xóa dòng swap đi rồi boot lại.
Khi nào cần tắt swap hoàn toàn
Ngược lại với nhu cầu của VPS RAM thấp, có vài trường hợp nên tắt swap. Nếu bạn chạy Kubernetes hoặc một số database yêu cầu độ trễ thấp, swap có thể gây ra độ trễ không mong muốn. Với VPS RAM 4GB trở lên chạy ứng dụng nhẹ, nhiều quản trị viên chọn tắt swap hẳn. Nếu cần tắt:
sudo swapoff /swapfile
Sau đó xóa dòng trong /etc/fstab tương ứng. Không xóa file ngay vội, khi chắc chắn hệ thống ổn định rồi mới xóa:
sudo rm /swapfile
Câu hỏi thường gặp
Swap bao nhiêu là đủ cho VPS 1GB RAM?
VPS 1GB RAM nên tạo swap 2GB. Đây là mức gấp đôi RAM, đủ để làm vùng đệm cho WordPress, n8n hay các ứng dụng Python/Node cơ bản khi có đợt tăng đột biến, đồng thời không quá lớn gây lãng phí ổ đĩa.
Swappiness bao nhiêu là hợp lý cho VPS RAM thấp?
Đặt vm.swappiness=10 cho VPS RAM thấp chạy ứng dụng. Giá trị mặc định 60 khiến kernel dùng swap quá sớm dù RAM vẫn còn trống, làm ứng dụng chậm đi. Giá trị 10 giúp kernel ưu tiên giữ dữ liệu trong RAM.
Swap file có làm giảm tuổi thọ ổ NVMe không?
Có, nhưng không đáng lo. Ổ NVMe trên VPS hiện nay có endurance rất cao, và việc ghi swap chỉ diễn ra khi hệ thống thực sự cần. Miễn là hệ thống không phụ thuộc thường xuyên vào swap, ảnh hưởng tới tuổi thọ ổ là không đáng kể so với việc tránh bị OOM.
Có nên tạo swap trên VPS bằng ổ RAM không?
Không nên. Một số người dùng tmpfs hoặc zram để tạo swap trên RAM, nhưng điều đó làm giảm RAM khả dụng ngay từ đầu, đi ngược lại mục tiêu của VPS RAM thấp. Swap trên ổ NVMe vẫn là lựa chọn đúng.
VPS 2GB RAM có cần swap không?
Có, nên tạo 2GB swap. VPS 2GB có thể chạy tốt nhiều ứng dụng nhưng dễ bị OOM khi có đột biến traffic hoặc lỗi rò rỉ bộ nhớ. Swap 2GB là lớp bảo hiểm rẻ tiền, giúp server không sập giữa chừng.
Bài viết liên quan
- Cách bật swap trên VPS ít RAM chi tiết 2026
- Vì sao VPS bị đầy RAM và cách xử lý hiệu quả
- Cách giảm RAM sử dụng trên VPS Linux hiệu quả
- Tối ưu VPS cho automation: swap, ulimit và tmpfs
Cấu hình swap hợp lý cho VPS RAM thấp không phải là chuyện một lần xong. Sau khi làm theo các bước trên, hãy theo dõi vmstat vài ngày. Nếu swap bị dùng thường xuyên, đó là tín hiệu ứng dụng cần RAM thật, không phải swap. Lúc đó nên cân nhắc nâng cấp lên gói VPS nhiều RAM hơn. Nếu bạn đang dùng VPS NVMe với IPv4 Việt Nam, thueVPS có các gói từ 2GB RAM với mức giá theo tháng, xem bảng giá để chọn cấu hình vừa túi tiền mà không phải lo việc tinh chỉnh swap quá nhiều.


