Tạo file swap cho VPS

Tạo file swap trên linux

Swap VPS là gì

Swap là bộ nhớ ảo được sử dụng trên hệ điều hành Linux.

Khi máy chủ Linux hoạt đông nếu hết Ram thì máy chủ sẽ sử dụng một phần ổ cứng để làm bộ nhớ cho các tiến trình hoạt động bình thường.

Trong trường hợp máy chủ không có swap, nếu hết RAM, bạn sẽ gặp phải lỗi Establishing a Database Connection. Nguyên nhân khi hết RAM service MySQL sẽ dừng lại.

Trong bài viết này mình sẽ hướng dẫn bạn tạo Swap trong trường hợp máy chủ chưa được cấp phát.

 

Hướng dẫn tạo file swap cho VPS (Debian)

Đầu tiên ta cần kiểm tra file swap đã tồn tại chưa bằng lệnh:

$ sudo swapon -s

Quy tắc bộ nhớ cấp phát cho swap gấp đôi RAM. Ví dụ nếu RAM của bạn 512MB bạn sẽ lấy 1GB ổ cứng làm swap.

Tiếp theo tạo file swap với câu lệnh bên dưới. Ví dụ bên dưới mình tạo swap 2GB (count=2048k). Bạn chỉnh lại cho phù hợp với trường hợp của bạn nhé.

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

Tiếp theo, tạo phân vùng swap với câu lệnh sau: ​

$ sudo mkswap /swapfile

Tiếp theo kích hoạt swap với lệnh sau:

$ sudo swapon /swapfile

Kiểm tra lại swap bạn sẽ thấy như sau:

$ sudo swapon -s

Lưu ý là file swap bạn tạo như trên sẽ mất đi nếu máy chủ khởi động lại. Để duy trì bạn cần sửa lại file /etc/fstab với editor nano:

$ sudo nano /etc/fstab

Copy và paste dòng sau vào cuối file. Sau đó ấn Ctrl + O rồi Enter để lưu file, rồi ấn Ctrl + X để thoát.

/swapfile swap swap defaults 0 0

Tăng bảo mật cho swap bằng lệnh sau:

$ sudo chown root:root /swapfile
$ sudo chmod 0600 /swapfile

 

Cấu hình swappiness

Swappiness là mức độ ưu tiên sử dụng swap khi phần trăm RAM còn lại bằng giá trị của swappiness.

Swappiness có giá trị trong khoảng 0-100.

  • swappiness = 100: swap sẽ được ưu tiên sử dụng như là RAM
  • swappiness = 60: swap được sử dụng khi RAM còn 60%
  • swappiness = 10 swap được sử dụng khi RAM còn 10%
  • swappiness = 0: swap chỉ được dùng khi hết RAM.

Tốc độ swap không thể sánh bằng RAM. Do vậy bạn thiết lập giá swappiness gần về 0 để tận dụng RAM. Giá trị đề xuất là 10.

Kiểm tra giá trị swappiness máy chủ của bạn với lệnh sau: ​

$ cat /proc/sys/vm/swappiness

Thiết lập lại giá swappiness bằng câu lệnh sau:

$ sudo sysctl vm.swappiness=10

Bây giờ bạn sử dụng câu lệnh kiểm tra swappiness ở trên check lại.

Để giữ cho thông số swappiness giữ lại khi khởi động lại máy chủ, bạn cần chỉnh lại vm.swappiness ở cuối file /etc/sysctl.conf.

$ sudo nano /etc/sysctl.conf

Nếu chưa có thêm dòng này vm.swappiness = 10 vào cuối file.

Bây giờ khởi động lại VPS. Check lại swap và swappiness.

$ sudo swapon -s
$ sudo cat /proc/sys/vm/swappiness

 

Thay đổi dung lượng swap

Nếu bạn làm theo hướng dẫn trên để tạo file swap, bạn có thể làm các bước sau để chỉnh lại kích thước swap.

Tắt swap​

$ sudo swapoff /swapfile

Xóa file swap

$ sudo rm -f /swapfile

Tạo mới file swap với kích thước bạn muốn ví dụ tạo 2GB

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

Tạo phân vùng swap:

$ sudo mkswap /swapfile

Kích hoạt swap:

$ swapon /swapfile

Bảo mật cho swap bằng 2 lệnh sau:

$ sudo chown root:root /swapfile
$ sudo chmod 0600 /swapfile

Kiểm tra lại swap đã chuẩn chưa:

$ swapon -s

Phần cấu hình swap khi khởi động lại máy chủ và thiết lập swappiness bạn không cần thay đổi.

Bây giờ bạn hãy khởi động lại server và kiểm tra lại lần nữa.

 

Nếu có bất kỳ thắc mắc, đóng góp nào. Các bạn hãy để lại comment bên dưới nhé.

Chúc các bạn thành công!

 

Chia sẻ bài viết:

Trả lời

Email của bạn sẽ không được hiển thị công khai.