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, Azdigi, Digital 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
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
Ở 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ý.
– 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.
– Định dạng lại cho file swap
sudo mkswap /swapfile
Kết quả
– 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
– 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.
– 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
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!