Hướng Dẫn Tạo Swap Trên VPS Ubuntu An Toàn 2026

Hướng dẫn tạo swap file trên VPS Ubuntu từ A-Z: kiểm tra RAM/swap hiện tại, tạo file swap, chmod, mkswap, swapon, fstab, swappiness và cách xử lý lỗi thường gặp.

Swap là vùng lưu trữ được Linux dùng để hỗ trợ quản lý bộ nhớ khi RAM vật lý bị áp lực. Trên VPS Ubuntu có RAM hạn chế, một swap file được cấu hình đúng có thể giúp hệ thống có thêm dư địa thay vì để ứng dụng bị lỗi cấp phát bộ nhớ quá sớm. Tuy nhiên, swap không phải “RAM miễn phí”: storage chậm hơn RAM nhiều, và nếu VPS phải swap liên tục thì nguyên nhân gốc thường là thiếu RAM hoặc workload quá nặng. Bài viết này hướng dẫn cách kiểm tra swap hiện có, tạo swap file an toàn, kích hoạt bằng `swapon`, thêm vào `/etc/fstab`, điều chỉnh `vm.swappiness`, theo dõi mức sử dụng và xử lý các trường hợp đặc biệt như Btrfs. Nội dung tập trung vào cách làm có thể kiểm chứng và tránh các mẹo đặt kích thước swap cố định cho mọi VPS.

Điểm quan trọng Hãy lựa chọn dịch vụ dựa trên nhu cầu sử dụng thực tế và theo dõi tài nguyên thường xuyên để có hiệu quả tốt nhất.

Khi một VPS Ubuntu thiếu RAM, Linux có thể sử dụng swap — vùng lưu trữ trên disk được dùng cho paging/swapping — để tạo thêm dư địa cho quản lý bộ nhớ. Swap không nhanh bằng RAM, nhưng có thể giúp hệ thống tránh rơi vào trạng thái hết memory quá sớm trong một số workload.

Điều quan trọng cần hiểu ngay từ đầu: swap không thay thế RAM vật lý. Nếu VPS liên tục đọc/ghi swap với cường độ cao, hệ thống có thể chậm rõ rệt. Khi đó, giải pháp lâu dài thường là giảm workload hoặc nâng RAM.

Bài viết này hướng dẫn tạo swap file trên Ubuntu theo cách có thể kiểm tra từng bước, đồng thời chỉ ra các trường hợp không nên áp dụng máy móc.

Nếu bạn mới làm quen Linux, có thể xem bài Các lệnh Linux cơ bản trên VPS Ubuntu. Nếu đang triển khai ứng dụng container, bài Cài Docker và Docker Compose trên VPS Ubuntu sẽ hữu ích hơn.

1. Swap là gì?

Swap là vùng bộ nhớ ảo nằm trên storage. Linux có thể chuyển một số trang bộ nhớ ít sử dụng ra swap để dành RAM cho workload đang cần truy cập nhanh hơn.

Swap có thể tồn tại dưới dạng:

  • swap partition;
  • swap file;
  • một số cấu hình đặc biệt khác.

Trên VPS, swap file thường tiện hơn vì có thể tạo, tăng hoặc xóa mà không cần thay đổi partition table.

Ubuntu sử dụng các công cụ như mkswap, swapon và swapoff để chuẩn bị, bật và tắt vùng swap.

2. Khi nào VPS Ubuntu nên có swap?

Swap có thể hữu ích khi:

  • VPS có RAM tương đối hạn chế;
  • workload có lúc tăng memory đột ngột;
  • build code hoặc cài package đôi khi cần nhiều RAM;
  • database hoặc ứng dụng cần thêm dư địa commit memory;
  • bạn muốn giảm nguy cơ process bị OOM kill quá sớm.

Swap đặc biệt hữu ích như một lớp đệm, không phải một chiến lược chạy workload lớn trên VPS thiếu RAM.

3. Khi nào swap không giải quyết được vấn đề?

Swap không giúp nhiều nếu:

  • CPU đang quá tải;
  • storage quá chậm;
  • disk gần đầy;
  • ứng dụng có memory leak;
  • workload thường xuyên cần nhiều RAM hơn cấu hình VPS;
  • database đang swap liên tục và latency tăng cao.

Nếu một VPS liên tục dùng gần hết RAM và swap, nâng RAM thường là giải pháp phù hợp hơn.

Nếu bạn cần môi trường có thể nâng tài nguyên linh hoạt, có thể tham khảo VPS tại HUONG CLOUD và chọn cấu hình theo workload thực tế.

4. Kiểm tra RAM và swap hiện tại

Dùng:

free -h

Ví dụ bạn sẽ thấy:

               total        used        free      shared  buff/cache   available
Mem:            ...
Swap:           ...

Nếu dòng Swap bằng 0, hệ thống có thể chưa có swap active.

Kiểm tra chi tiết:

swapon --show

Hoặc:

cat /proc/swaps

5. Kiểm tra filesystem trước khi tạo swap file

Trước khi tạo swap, kiểm tra filesystem:

df -T /

Bạn có thể thấy ext4, xfs, btrfs hoặc loại khác.

Điều này quan trọng vì swap file có yêu cầu đặc biệt trên một số filesystem, đặc biệt Btrfs.

Ubuntu manpage của swapon lưu ý rằng swap file cần mapping block phù hợp và các file có “holes” hoặc copy-on-write có thể không hoạt động đúng trong một số filesystem.

6. Kiểm tra dung lượng trống

df -h /

Không nên tạo swap quá lớn nếu ổ hệ thống đã gần đầy.

Ngoài swap, VPS còn cần dung lượng cho:

  • log;
  • package update;
  • application data;
  • database;
  • backup;
  • Docker images nếu có.

Giữ dung lượng trống hợp lý quan trọng hơn việc cố tạo một swap file thật lớn.

7. Swap nên lớn bao nhiêu?

Không có một công thức chung áp dụng cho mọi VPS.

Các hướng dẫn kiểu “swap luôn bằng 2x RAM” là quá đơn giản. Kích thước swap phụ thuộc:

  • lượng RAM;
  • peak memory usage;
  • workload;
  • storage;
  • yêu cầu hibernate, nếu có;
  • crash dump hoặc cấu hình hệ thống đặc biệt.

Với VPS server không hibernate, hãy nhìn peak memory và mục tiêu sử dụng thực tế.

Cách tốt hơn:

  1. đo RAM peak;
  2. xác định workload có spike hay không;
  3. tạo swap vừa đủ làm buffer;
  4. theo dõi free, vmstat và swapon;
  5. nâng RAM nếu swap thường xuyên bị sử dụng nhiều.

8. Tạo swap file bằng fallocate

Ví dụ tạo swap file 2 GiB:

sudo fallocate -l 2G /swapfile

Kiểm tra:

ls -lh /swapfile

Lưu ý filesystem

Ubuntu manpage cảnh báo rằng file swap cần cấu trúc phù hợp. Trên filesystem đặc biệt như Btrfs, cách tạo bằng fallocate thông thường có thể không đủ nếu chưa xử lý NOCOW.

Nếu VPS dùng ext4 phổ biến, quy trình dưới đây thường đơn giản hơn.

9. Cách portable hơn với dd

Ubuntu manpage của swapon ghi rằng cách portable để tạo file swap là dùng dd từ /dev/zero.

Ví dụ 2 GiB:

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

Sau khi hoàn tất:

ls -lh /swapfile

dd có thể mất thời gian hơn fallocate vì thực sự ghi dữ liệu ra file.

10. Đặt quyền 600 cho swap file

Swap file không nên cho user khác đọc.

Chạy:

sudo chmod 600 /swapfile

Kiểm tra:

ls -l /swapfile

Kết quả nên tương tự:

-rw------- 1 root root ... /swapfile

11. Format file thành swap area

sudo mkswap /swapfile

Nếu thành công, lệnh sẽ tạo swap signature.

Chưa có bước này thì swapon sẽ không coi file là swap hợp lệ.

12. Kích hoạt swap

sudo swapon /swapfile

Kiểm tra:

swapon --show

và:

free -h

Bạn sẽ thấy tổng swap đã tăng.

13. Làm swap tự bật sau reboot

Nếu chỉ chạy swapon /swapfile, swap có thể không tự active sau reboot.

Thêm vào /etc/fstab:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Trước khi reboot, kiểm tra:

cat /etc/fstab

Đảm bảo không thêm trùng nhiều dòng /swapfile.

14. Test cấu hình fstab an toàn

Bạn có thể tắt rồi bật lại swap:

sudo swapoff /swapfile
sudo swapon -a

Sau đó kiểm tra:

swapon --show

Nếu /swapfile xuất hiện trở lại, entry trong fstab hoạt động.

15. vm.swappiness là gì?

vm.swappiness là tham số kernel ảnh hưởng mức độ Linux ưu tiên reclaim memory và sử dụng swap.

Xem giá trị hiện tại:

sysctl vm.swappiness

Hoặc:

cat /proc/sys/vm/swappiness

Không nên hiểu swappiness như “phần trăm RAM còn lại thì bắt đầu swap”. Đây là cách diễn giải sai và quá đơn giản.

Nó là một tham số ảnh hưởng quyết định reclaim/swap của kernel.

16. Có nên đặt swappiness bằng 0 không?

Không nên mặc định.

Giá trị rất thấp có thể khiến kernel hạn chế swap hơn, nhưng không có nghĩa swap sẽ hoàn toàn không được dùng.

Đặt swappiness=0 chỉ vì muốn “không swap” có thể làm hệ thống kém linh hoạt hơn khi memory pressure xảy ra.

Tốt hơn là theo dõi workload trước khi chỉnh.

17. Thay đổi swappiness tạm thời

Ví dụ:

sudo sysctl vm.swappiness=10

Giá trị này sẽ có hiệu lực đến lần reboot, trừ khi được lưu vào config.

Đây chỉ là ví dụ kỹ thuật, không phải khuyến nghị cố định cho mọi VPS.

18. Lưu swappiness lâu dài

Tạo file riêng trong /etc/sysctl.d/:

sudo nano /etc/sysctl.d/99-swap.conf

Thêm:

vm.swappiness=10

Sau đó:

sudo sysctl --system

Tạo file riêng tốt hơn sửa mọi thứ vào /etc/sysctl.conf nếu bạn muốn quản lý cấu hình rõ ràng.

19. Theo dõi swap usage

free -h
swapon --show

Với vmstat:

vmstat 1

Trong output, các cột si và so liên quan swap-in và swap-out.

Nếu hai giá trị liên tục cao trong workload bình thường, VPS có thể đang chịu memory pressure đáng kể.

20. Dùng top và htop để kiểm tra RAM

top

Hoặc:

htop

Nếu chưa có:

sudo apt install htop -y

Hãy xác định process nào đang dùng RAM nhiều thay vì chỉ nhìn tổng swap.

21. Swap dùng một ít có đáng lo không?

Không nhất thiết.

Linux có thể giữ một số trang ít dùng trong swap dù RAM hiện tại còn trống. Việc swap usage khác 0 không tự động đồng nghĩa hệ thống đang thiếu RAM nghiêm trọng.

Điều cần quan tâm là:

  • swap-in/out có xảy ra liên tục không;
  • application latency có tăng không;
  • available memory có thấp kéo dài không;
  • OOM event có xuất hiện không.

22. Kiểm tra OOM Killer

Nếu Linux hết memory, OOM Killer có thể kết thúc process để cứu hệ thống.

Tìm log:

journalctl -k | grep -i -E 'oom|out of memory|killed process'

Hoặc:

dmesg | grep -i -E 'oom|out of memory|killed process'

Nếu có OOM thường xuyên, swap chỉ là một phần của giải pháp. Bạn cần kiểm tra RAM và workload.

23. Tăng swap file khi cần

Không nên resize swap khi file đang active một cách tùy tiện.

Quy trình an toàn:

  1. kiểm tra RAM còn đủ để tắt swap;
  2. swapoff file;
  3. resize/recreate;
  4. mkswap;
  5. swapon lại;
  6. kiểm tra.

Ví dụ:

sudo swapoff /swapfile

Sau đó recreate với kích thước mới.

Cảnh báo

Nếu RAM hiện tại không đủ chứa các trang đang nằm trong swap, swapoff có thể thất bại hoặc làm hệ thống memory pressure mạnh.

Hãy thực hiện trong maintenance window nếu server production đang tải cao.

24. Xóa swap file

Tắt swap:

sudo swapoff /swapfile

Xóa dòng trong /etc/fstab.

Sau đó:

sudo rm /swapfile

Kiểm tra:

swapon --show
free -h

Không xóa file trước khi swapoff.

25. Swap trên Btrfs cần chú ý gì?

Btrfs sử dụng copy-on-write và có quy tắc riêng cho swap file.

Ubuntu manpage Btrfs nêu các điều kiện như:

  • file phải preallocated;
  • NODATACOW;
  • filesystem có những giới hạn cụ thể;
  • subvolume chứa swap active không thể snapshot bình thường trong một số trường hợp.

Trên Btrfs hiện đại, có thể dùng công cụ Btrfs chuyên dụng để tạo swapfile.

Không nên áp dụng quy trình ext4 máy móc cho Btrfs.

26. Swap trên XFS và filesystem khác

Một số filesystem hỗ trợ swap file với điều kiện khác nhau.

Ubuntu manpage swapon cũng lưu ý rằng các file có holes có thể bị kernel từ chối.

Nếu swapon báo lỗi Invalid argument, hãy kiểm tra:

  • filesystem;
  • cách file được tạo;
  • file có holes hay không;
  • CoW;
  • quyền file.

27. Swap có làm hao SSD/NVMe không?

Swap tạo I/O lên storage khi thực sự được sử dụng.

Nếu VPS swap rất ít, lượng ghi có thể không đáng kể so với nhiều workload khác như database hoặc log.

Nếu swap liên tục với cường độ cao, vấn đề quan trọng hơn thường là hiệu năng: storage chậm hơn RAM và hệ thống có thể bị thrashing.

Không nên tắt swap chỉ vì sợ ghi SSD mà không đo I/O thực tế.

28. NVMe có làm swap nhanh như RAM không?

Không.

NVMe nhanh hơn nhiều loại storage cũ nhưng vẫn chậm hơn RAM về latency và bandwidth trong hầu hết workload.

Vì vậy:

  • NVMe giúp paging đỡ tệ hơn storage chậm;
  • nhưng không biến swap thành RAM;
  • không nên dùng swap để thay thế việc nâng RAM dài hạn.

29. Swap và Docker

Container dùng memory của host Linux. Nếu host có swap, container có thể bị ảnh hưởng bởi memory/swap policy tùy cấu hình Docker/cgroup.

Với VPS chạy nhiều container:

docker stats

giúp theo dõi memory từng container.

Nếu host liên tục swap vì container dùng quá nhiều RAM, hãy:

  • giới hạn memory hợp lý;
  • giảm container;
  • tối ưu app;
  • nâng RAM.

30. Swap và database

Database thường nhạy với memory và I/O.

Nếu MySQL/PostgreSQL thường xuyên bị swap, query latency có thể tăng.

Không nên thiết kế database production dựa vào swap như nguồn memory chính.

Hãy ưu tiên:

  • RAM đủ;
  • buffer/cache được cấu hình đúng;
  • swap chỉ là buffer an toàn;
  • monitoring.

31. Tình huống thực tế: build ứng dụng làm VPS hết RAM

Giả sử VPS nhỏ chạy website ổn, nhưng mỗi lần build Node.js hoặc compile package thì memory tăng mạnh và process bị kill.

Bạn có thể:

  1. kiểm tra free -h;
  2. xem log OOM;
  3. thêm swap vừa phải;
  4. chạy lại build;
  5. theo dõi vmstat;
  6. nếu build vẫn swap nặng và rất chậm, nâng RAM hoặc build ở CI/máy khác.

Swap có thể giúp vượt qua memory spike, nhưng không phải lúc nào cũng là kiến trúc tốt nhất.

32. Tình huống thực tế: VPS có swap nhưng vẫn crash

Nếu swap đã có mà process vẫn chết, có thể:

  • RAM + swap đều đầy;
  • process có memory limit riêng;
  • cgroup/Docker limit;
  • filesystem hết dung lượng;
  • kernel OOM policy;
  • memory leak quá lớn.

Kiểm tra:

free -h
swapon --show
df -h
journalctl -k | grep -i oom

33. Có nên tạo nhiều swap file?

Linux hỗ trợ nhiều swap area và priority.

Nhưng trên VPS đơn giản, một swap file thường dễ quản lý hơn.

Nhiều swap file chỉ hữu ích khi bạn có lý do kỹ thuật rõ ràng như storage khác nhau hoặc cần mở rộng tạm thời.

34. Swap priority là gì?

swapon hỗ trợ priority để kernel biết ưu tiên swap area nào.

Xem:

swapon --show

Nếu chỉ có một swapfile, bạn thường không cần chỉnh priority.

35. Có nên bật swap trên VPS có nhiều RAM?

Tùy workload.

Ngay cả máy có nhiều RAM vẫn có thể giữ một swap nhỏ để tăng dư địa cho memory pressure hoặc các tình huống hiếm.

Nhưng không có quy tắc bắt buộc mọi VPS đều phải có swap.

Nếu ứng dụng latency-sensitive và bạn có đủ RAM, bạn có thể thiết kế khác.

36. Swap có ảnh hưởng backup/snapshot không?

Swap file có thể chiếm dung lượng snapshot nếu nền tảng snapshot block-level toàn disk.

Trên Btrfs, active swapfile còn có các giới hạn liên quan snapshot subvolume.

Nếu backup VPS lớn, hãy hiểu cơ chế snapshot của nhà cung cấp để biết swapfile có được tính vào dung lượng hay không.

37. Checklist tạo swap an toàn

  • Kiểm tra RAM bằng free -h.
  • Kiểm tra swap bằng swapon --show.
  • Kiểm tra filesystem bằng df -T /.
  • Kiểm tra disk free bằng df -h.
  • Tạo file bằng cách phù hợp filesystem.
  • chmod 600.
  • mkswap.
  • swapon.
  • Thêm /etc/fstab.
  • Test swapon -a.
  • Theo dõi vmstat và free.

38. Xu hướng quản lý memory VPS năm 2026

Monitoring quan trọng hơn công thức swap cố định

Người dùng ngày càng dựa vào metric RAM, swap-in/out và OOM thay vì các công thức “1x RAM, 2x RAM” chung chung.

NVMe phổ biến hơn

Storage NVMe giúp paging có độ trễ tốt hơn HDD/SATA truyền thống, nhưng swap vẫn không thay thế RAM.

Container memory limits phổ biến

Docker và cgroup giúp giới hạn memory theo workload, giúp giảm nguy cơ một service chiếm toàn bộ RAM của VPS.

Cloud VPS dễ resize

Khả năng nâng RAM nhanh làm giảm nhu cầu “cố cứu” hệ thống thiếu memory chỉ bằng swap.

39. FAQ về swap trên VPS Ubuntu

Swap có phải RAM ảo không?

Có thể gọi là một dạng virtual memory backing trên storage, nhưng nó chậm hơn RAM vật lý đáng kể.

VPS 2 GB RAM nên tạo swap bao nhiêu?

Không có một con số đúng cho mọi workload. Hãy dựa trên peak memory, disk free và mục tiêu sử dụng.

Swap dùng nhiều có sao không?

Nếu swap-in/out liên tục và ứng dụng chậm, đó có thể là dấu hiệu thiếu RAM.

Có nên đặt swappiness bằng 0?

Không nên mặc định. Hãy điều chỉnh dựa trên workload và đo lường.

fallocate hay dd tốt hơn?

fallocate nhanh và tiện trên nhiều filesystem, còn Ubuntu manpage ghi dd là cách portable hơn cho swapfile. Với Btrfs cần quy trình riêng.

Swap có giúp Docker chạy nhiều container hơn không?

Có thể tạo thêm buffer, nhưng nếu container cần RAM thật thường xuyên thì nên nâng RAM hoặc giới hạn workload.

Xóa swap có mất dữ liệu không?

Swap không phải nơi lưu dữ liệu ứng dụng lâu dài, nhưng phải swapoff trước khi xóa để kernel chuyển trang bộ nhớ về RAM hoặc swap area khác.

Kết luận

Tạo swap trên VPS Ubuntu là một cách hữu ích để tăng dư địa quản lý memory, đặc biệt với VPS nhỏ hoặc workload có spike. Quy trình cơ bản là tạo file, đặt quyền 600, chạy mkswap, swapon và thêm vào /etc/fstab.

Tuy nhiên, hãy xem swap là buffer, không phải cách thay thế RAM. Nếu VPS thường xuyên swap mạnh, OOM hoặc chậm vì paging, hãy tối ưu ứng dụng hoặc nâng RAM.

Nếu bạn cần VPS Ubuntu có khả năng nâng RAM linh hoạt cho website, Docker hoặc ứng dụng 24/7, hãy chọn cấu hình dựa trên memory peak và theo dõi thực tế sau khi triển khai.

Nguồn tham khảo

Kết luận

Nếu chưa chắc cấu hình hoặc loại dịch vụ nào phù hợp, hãy gửi nhu cầu thực tế để đội ngũ hỗ trợ tư vấn trước khi mua.

Chưa biết nên chọn gói nào?

Xem bảng giá VPS hoặc liên hệ đội ngũ hỗ trợ để chọn cấu hình phù hợp.

Xem bảng giá VPS →