Hướng dẫn tạo SWAP cho VPS Linux – Tạo bộ nhớ ảo cho hệ thống

Swap là khái niệm bộ nhớ ảo trên hệ điều hành Linux, nó sử dụng tài nguyên của ổ cứng để làm bộ nhớ ảo chạy các ứng dụng. Thông thường khi server của bạn không được tạo swap thì khi hết RAM hệ thông sẽ stop các ứng dụng như MySQL khi đó web sẽ không chạy được.

Do tốc độ của ổ cứng không thể nhanh bằng RAM nên việc tạo swap chỉ là để dự phòng cho trường hợp hết RAM. Nếu tình trạng hết RAM xảy ra liên tục thì bạn hãy tối ưu lại server hoặc cần thiết thì nâng cấp RAM cho hệ  thống. Ngoài ra, việc tạo swap chỉ nên làm nếu VPS của bạn sử dụng ổ cứng SSD hoặc RAID-10 hoặc các VPS khác không phải VPS sử dụng công nghệ ảo hóa OpenVZ vì các OpenVZ VPS thường được hệ thống tự động kích hoạt swap sẵn.

Bạn có thể tham khảo VPS của các nhà cung cấp như Vultr, AzdigiDigital Ocean. Các nhà cung cấp này đều sử dụng ổ cứng SSD và RAID-10 với giá rất tốt và đang được nhiều người sử dụng.

Hướng dẫn cách tạo SWAP cho VPS Linux

Trong bài viết này mình sẽ hướng dẫn cách tạo swap cho VPS Linux để bạn có thể tạo bộ nhớ ảo cho hệ thống để chạy dự phòng khi hệ thống hết bộ nhớ RAM. Trước khi bắt đầu bạn hãy đăng nhập vào VPS qua SSH bằng ZOC Terminal hay bằng phần mềm SSH nào đó đều được. Ở đây mình dùng ZOC Terminal.

Kiểm tra swap trên hệ thống

– Việc đầu tiên trước khi tạo swap cho VPS là bạn cần check xem hệ thống của bạn đã được kích hoạt swap chưa bằng cách chạy lệnh

free -m

huong-dan-tao-swap-cho-vps-linux-1

Nếu các thông số của swap bằng 0 như hình trên có nghĩa là VPS của bạn chưa được tạo swap. Vậy chúng ta cần phải tạo swap cho VPS.

– Trước khi bắt đầu tạo swap thì cần kiểm tra dung lượng ổ cứng còn trống là bao nhiêu bằng cách dùng lệnh

df -h

huong-dan-tao-swap-cho-vps-linux-2

Ở dòng tô xanh dung lượng còn trống ở cột Avail là 18Gb. Bạn dựa vào đây để tính xem nên tạo swap bao nhiêu là đủ.

Tạo swap cho VPS

– Để tạo swap ta dùng lệnh sau:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k

Lệnh trên sẽ tạo swap có dung lượng 1Gb. Nếu bạn muốn tạo swap có dung lượng khác hãy thay count=1024k bằng con số bạn muốn. Ví dụ count=2048k tương ứng với swap dung lượng 2Gb.

Lưu ý: Dung lượng swap tối đa chỉ nên gấp đôi dung lượng RAM vật lý.

huong-dan-tao-swap-cho-vps-linux-3

– Kiểm tra lại xem swap được tạo có bị lỗi gì không

ls -lh /swapfile

Nếu kết quả trả về như sau có nghĩa là mọi thứ đều ổn.

huong-dan-tao-swap-cho-vps-linux-4

– Định dạng lại cho file swap

sudo mkswap /swapfile

Kết quả

huong-dan-tao-swap-cho-vps-linux-5

– Kích hoạt file swap

swapon /swapfile

– Kiểm tra tình trạng swap trên VPS bằng lệnh

free -m

Kết quả huong-dan-tao-swap-cho-vps-linux-6

– Chmod quyền truy cập cho file này bằng lệnh

chown root:root /swapfile
sudo chmod 600 /swapfile

– Chạy lệnh sau để mỗi khi reboot lại VPS swap tự động được kích hoạt

echo /swapfile none swap defaults 0 0 >> /etc/fstab

Cấu hình tham số swappiness

Việc cấu hình swappiness chính là cấu hình mức độ ưu tiên sử dụng swap. Tức là chúng ta sẽ thiết lập sao cho khi lượng RAM còn bằng giá trị của swappiness (tính bằng %) thì hệ thống sẽ sử dụng swap. Swappiness có giá trị từ 0 – 100.

  • swappiness = 0: swap dùng khi RAM được dùng hết.
  • swappiness = 10: swap sử dụng khi RAM còn 10%.
  • swappiness = 50: swap sử dụng khi RAM còn 50%.
  • swappiness = 100: swap được sử dụng đồng thời với RAM.

Như đã nói ở trên, tốc độ xử lý của RAM cao hơn nhiều so với Swap nên hãy đặt giá trị swappiness gần với 0 để tận dụng tối đa sức mạnh của RAM. Giá trị tốt nhất nên đạt là 10.

– Để kiểm tra giá trị hiện tại của swappiness bạn dùng lệnh

cat /proc/sys/vm/swappiness

Kết quả trả về là 30 hoặc 1 số nào đó tùy thuộc vào hệ điều hành đang dùng (CentOS, Ubuntu,…)

– Để thay đổi giá trị của swappiness bạn dùng lệnh

sudo sysctl vm.swappiness=10

– Lệnh trên giúp thay đổi giá trị của swappiness là 10. Bạn có thể dùng lại lệnh sau để kiểm tra xem đã đúng chưa.

cat /proc/sys/vm/swappiness

Để giữ nguyên thông số này sau mỗi lần khởi động lại VPS bạn cần điều chỉnh tham số vm.swappiness ở cuối file /etc/sysctl.conf (nếu không thấy bạn hãy tự thêm vào)

– Sử dụng lệnh sau để sửa file /etc/sysctl.conf

nano /etc/sysctl.conf

– Tìm đến dòng vm.swappiness và đổi sang giá trị mong muốn hoặc chưa có thì bạn có thể thêm vào cuối file dòng

vm.swappiness=10

Nhấn Ctrl + O để lưu, Enter và Ctrl + X để thoát.

huong-dan-tao-swap-cho-vps-linux-7

– Khởi động lại VPS và kiểm tra lại kết quả bằng lệnh

free -m
cat /proc/sys/vm/swappiness

huong-dan-tao-swap-cho-vps-linux-8

Thay đổi dung lượng file swap trong VPS

Sau khi thực hiện theo các bước trên để tạo swap cho VPS Linux xong nếu bạn muốn thay đổi tăng giảm dung lượng swap thì hãy làm theo các bước sau:

– Tắt swap

swapoff /swapfile

– Xóa swap

rm -f /swapfile

– Tạo swap với dung lượng mới. Ví dụ lệnh dưới là tạo swap 2Gb (2048k)

sudo dd if=/dev/zero of=/swapfile bs=1024 count=2048k

– Tạo phân vùng swap

mkswap /swapfile

– Kích hoạt swap

swapon /swapfile

– Chmod file swap

chown root:root /swapfile
chmod 600 /swapfile

– Kiểm tra file swap

free -m

Khi thay đổi dung lượng file swap, các cài đặt từ trước như tự động kích hoạt khi server reboot, thông số Swappiness được giữ nguyên nên bạn không cần phải thao tác gì thêm.

Lời kết

Như vậy là bài viết này mình đã hướng dẫn cách tạo swap cho VPS Linux rất chi tiết cho bạn rồi đó. Sau bài viết này bạn có thể tiến hành cài đặt HocVPS Script để tạo server cho VPS chạy web bằng luôn được rồi đó. Chúc bạn thành công!

Hướng dẫn tạo SWAP cho VPS Linux – Tạo bộ nhớ ảo cho hệ thống
5 2 votes

Để lại ý kiến của bạn

Hello! Tớ là Nguyễn Hùng, blog này tớ xây dựng nhằm mục đích chia sẻ miễn phí các kiến thức máy tính và làm web Wordpress, SEO, SEM, MMO,... mà tớ biết cho tất cả mọi người. Cảm ơn bạn đã ghé qua blog, nếu thấy bài viết hay, hãy chia sẻ để ủng hộ tinh thần cho tớ nha. → Xem tiếp"
Đăng ký nhận bản tin!

Đăng ký nhận bản tin!

Đăng ký email để nhận bài viết mới và các khuyến mãi, quà tặng trên blog Nguyễn Hùng.

Đăng ký thành công!