Hướng dẫn tạo Swap trên VPS SSD sử dụng CentOS
Hướng dẫn cách tạo Swap trên VPS SSD sử dụng CentOS giúp VPS đỡ bị treo, lag khi đầy bộ nhớ.
Lưu ý: Nếu VPS của bạn sử dụng ổ cứng SSD thì hãy tạo Swap, còn nếu sử dụng HDD mà tạo Swap cũng không cải thiện được gì cả, đôi khi lợi bất cập hại.
Với các VPS dùng công nghệ ảo hóa OpenVZ, có thể bạn sẽ không tạo được Swap do hệ thống đã tự động kích hoạt sẵn rồi nha
1. Kiểm tra Swap
Để kiểm tra VPS của bạn đã có Swap chưa bạn hãy dùng lệnh sau (Áp dụng được cả trên CentOS và Ubuntu)
free -m
Tạo swap vps
Bạn sẽ dễ dàng thấy thông số Swap (Như hình này là không có Swap)
2. Kiểm tra dung lượng ổ cứng của VPS
Tất nhiên để tạo được bộ nhớ ảo Swap thì bạn phải kiểm tra xem ổ cứng có còn trống để bạn giành 1 phần bộ nhớ để làm bộ nhớ ảo hay không
Bạn dễ dàng kiểm tra dung lượng ổ cứng còn trống bao nhiêu GB bằng lệnh sau
df -h
Ví dụ VPS của mình còn trống 5.6GB nên tha hồ tạo Swap
3. Tạo bộ nhớ ảo Swap cho VPS
Thông thường, bạn nên tạo Swap có dung lượng bằng hoặc gấp đôi dung lượng RAM (Vd: RAM 1GB thì nên tạo 2GB Swap)
Để tạo Swap 1GB 1 bạn dùng lệnh sau
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k
Để tạo Swap 2GB 1 bạn dùng lệnh sau
sudo dd if=/dev/zero of=/swapfile bs=1024 count=2048k
Ở vd này mình tạo 2GB Swap
Tiếp theo bạn tạo phân vùng cho Swap bằng lệnh sau
mkswap /swapfile
Tiếp theo bạn hãy chmod cho file swap bằng lệnh
chown root:root /swapfile chmod 0600 /swapfile
Tiếp theo, bạn có thể kích hoạt swap bằng câu lệnh
swapon /swapfile
Tiếp theo, thiết lập swap tự động được kích hoạt mỗi khi reboot
echo /swapfile none swap defaults 0 0 >> /etc/fstab
Giờ bạn kiểm tra lại bộ nhớ bằng lệnh free -m sẻ thấy có Swap rồi đấy
4. Cấu hình Swappiness
Swappiness là độ ưu tiên sử dụng swap, khi lượng RAM còn lại bằng giá trị của swappiness (tính theo tỷ lệ phần trăm) thì swap sẽ được sử dụng. Swappiness có giá trị trong khoảng 0 – 100.
- swappiness = 0: swap chỉ được dùng khi RAM được sử dụng hết
- swappiness = 10: swap được sử dụng khi RAM còn 10%
- swappiness = 60: swap được sử dụng khi RAM còn 60%
- swappiness = 100: swap được ưu tiên như là RAM
Do tốc độ xử lý dữ liệu trên RAM cao hơn nhiều so với Swap, do đó bạn nên đặt giá trị này về gần với 0 để tận dụng tối đa sức mạnh hệ thống. Tốt nhất nên chỉnh về 10.
Kiểm tra mức độ sử dụng file swap của hệ thống bằng cách chạy dòng lệnh sau (mặc định bạn sẻ thấy swappiness là 30 như hình bên dưới)
cat /proc/sys/vm/swappiness
Chỉnh thông số swappiness bằng cách dùng lệnh sysctl
sysctl vm.swappiness=10
Kiểm tra lại swappiness bạn sẽ thấy kết quả trả về 10 (cat /proc/sys/vm/swappiness)
Để đảm bảo giữ nguyên thông số này mỗi khi 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 có bạn hãy add thủ công vào)
Mở file sysctl.conf bằng trình soạn thảo Nano
nano /etc/sysctl.conf
Tiếp đó thêm vào cuối dòng bên dưới, sau đó nhấn Ctrl + X > Y > Ctrl + M + A để thoát.
vm.swappiness = 10
Khởi động lại VPS và kiểm tra lại kết quả
swapon -s cat /proc/sys/vm/swappiness
Lưu ý: Với CentOS 7.2 có thể tune profile sẽ overwrite vm.swappiness mỗi lần reboot, bạn cần kiểm tra profile nào đang overwrite để cấu hình lại thủ công.
grep vm.swappiness /usr/lib/tuned/*/tuned.conf
Bạn sẽ nhìn thấy
[root@nguyenthanhtbbgmail ~]# grep vm.swappiness /usr/lib/tuned/*/tuned.conf /usr/lib/tuned/latency-performance/tuned.conf:vm.swappiness=10 /usr/lib/tuned/throughput-performance/tuned.conf:vm.swappiness=10 /usr/lib/tuned/virtual-guest/tuned.conf:vm.swappiness = 30 [root@nguyenthanhtbbgmail ~]#
Lúc này, bạn hãy mở file /usr/lib/tuned/virtual-guest/tuned.conf, tìm vm.swappiness và thay đổi vm.swappiness = 30 thành vm.swappiness = 10
nano /usr/lib/tuned/virtual-guest/tuned.conf
Ctrl + X > Y > Ctrl + M + A để thoát.
Sau đó, khởi động lại VPS và kiểm tra lại kết quả.
Dùng lệnh htop để xem bộ nhớ VPS
5. Thay đổi dung lượng swap
Nếu bạn muốn thay đổi dung lượng swap, hãy thực hiện theo các bước sau
– Tắt swap
swapoff /swapfile
– Xóa file swap
rm -f /swapfile
– Tạo mới file swap với dung lượng mong muốn. Ví dụ mình tạo 1GB (1024k)
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k
– Tạo phân vùng swap
mkswap /swapfile
– Kích hoạt swap
swapon /swapfile
– chmod cho swap
chown root:root /swapfile chmod 0600 /swapfile
– Kiểm tra lại tình trạng swap
free -m
Một số trường hợp bạn sẻ gặp phải thông báo như “swapoff: /swapfile: swapoff failed: Cannot allocate memory” khi thay đổi dung lượng Swap thì có thể làm theo hướng dẫn dưới đây
1. Tạo 1 file swap mới với tên swapfile4G (Vd: Mình muốn tăng swap lên 4GB)
sudo fallocate -l 4G /swapfile4G sudo mkswap /swapfile4G sudo swapon /swapfile4G sudo swapoff /swapfile # < old swapfile sudo rm /swapfile sudo swapon -s # verify
2. Sau cùng bạn thiết lập swap tự động được kích hoạt mỗi khi reboot
echo /swapfile4G none swap defaults 0 0 >> /etc/fstab
Khi thay đổi dung lượng 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.
Giờ khởi động lại server rồi kiểm tra lại kết quả thôi.
Chúc bạn thành công!
Nguồn: thuthuatvip