Hướng dẫn chuyển Swap sang phân vùng khác phân vùng / trên linux
Hướng dẫn chuyển Swap sang phân vùng khác phân vùng / trên linux
Bài hướng dẫn này sẽ giúp chuyển swap từ phân vùng / hoặc phân vùng bất kì sang location mới.
Các bước tiến hành như sau:
1./ Kiểm tra và xoá phân vùng swap hiện tại.
Trường hợp cài đặt swap vào phân vùng /
ls -lh / | grep swap
-rw------- 1 root root 4136632320 Sep 25 2019 swap.img
Hiện tại swap đang là 4GB
Tắt swap
swapoff
swapoff -a
Kiểm tra lại swap
root@srv055:/var/cache# free -m
total used free shared buff/cache available
Mem: 32167 24799 4398 1 2968 6892
Swap: 0 0 0
root@srv055:/var/cache# mount -a
root@srv055:/var/cache# free -h
total used free shared buff/cache available
Mem: 31G 24G 4.6G 1.7M 2.6G 6.7G
Swap: 0B 0B 0B
2./ Tạo phân vùng swap
Tạo 1 phân vùng 10G để làm swap ở trong /opt. Tránh dùng phân vùng / có thể sẽ bị đầy /
sudo fallocate -l 10G /opt/swapfile
Kiểm tra lại phân vùng /opt/swapfile
ls -lh swapfile
-rw-r--r-- 1 root root 10G Aug 20 09:24 swapfile
Secure phân vùng swap
sudo chmod 600 swapfile
Kiểm tra lại
ls -lh swapfile
-rw------- 1 root root 10G Aug 20 09:24 swapfile
Gắn swapfile như là 1 swap
sudo mkswap swapfile
Kết quả
Setting up swapspace version 1, size = 10 GiB (10737414144 bytes)
no label, UUID=f6a61af8-577e-4d35-93d3-ab0f80e006ad
Enable swapfile
sudo swapon swapfile
Kiểm tra lại
sudo swapon --show
NAME TYPE SIZE USED PRIO
/opt/swapfile file 10G 0B -2
Kiểm tra phân vùng swap đã hoạt động chưa
free -h
total used free shared buff/cache available
Mem: 31G 24G 5.1G 1.7M 2.2G 6.8G
Swap: 9G 0B 9G
Mount swap cả kể khi khởi động lại
Trước tiên nên backup lại fstab. fstab là nơi cấu hình các ổ đĩa sẽ được mount tự động sau khi khởi động lại hệ điều hành
sudo cp /etc/fstab /etc/fstab.bak
Thêm cấu hình swapfile.
echo '/opt/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
/opt/swapfile none swap sw 0 0
Kiểm tra lại sẽ có cấu hình
cat /etc/fstab
Kết quả
/opt/swapfile none swap sw 0 0
3./ Tối ưu cài đặt swap
swappiness là thông số cấu hình giúp tương tác giữa swap và RAM, thông số có giá trị từ 0 đến 100 tính theo %.
Nếu swappiness có giá trị =0, Kernel sẽ không swap bất kì data nào. Luôn nhớ rằng việc dữ liệu được ghi vào swap luôn chậm hơn rất nhiều dữ liệu được ghi vào RAM. Vì Ram luôn có performance cao hơn ổ đĩa cả kể là SSD.
Nếu swappiness có giá trị tới 100, Kernel sẽ put nhiều hơn data vào swap và sẽ giúp cho nhiều RAM hơn được trống. Tuỳ vào từng trường hợp mà có thể điều chỉnh.
Kiểm tra thông số swappiness hiện tại
cat /proc/sys/vm/swappiness
kết quả
60
với server thì có thể tối ưu swappiness có giá trị bằng 10
sudo sysctl vm.swappiness=10
kết quả
vm.swappiness = 10
Cài đặt trên sẽ không tồn tại nếu reboot server do đó cần lưu trữ tại /etc/sysctl.conf
sudo nano /etc/sysctl.conf
Paste ở cuối cùng
vm.swappiness=10
4./ Tinh chỉnh thông số Cache Pressure
vfs_cache_pressure là thông số điều khiển bởi kernel lấy lại bộ nhớ đệm vào RAM để sử dụng với các đối tượng là thư mục và inode.
Mặc định vfs_cache_pressure=100 kernel sẽ cố gắng lấy lại dentries và inodes với tốc độ cân bằng với bộ nhớ đệm và swapcache lấy lại. Giảm vfs_cache_pressure sẽ làm cho kernel giữ lại dentries và indoes nhiều hơn.
Default vfs_cache_pressure có giá trị bằng 100
cat /proc/sys/vm/vfs_cache_pressure
Kết quả
100
Có thể tối ưu vm.vfs_cache_pressure có giá trị =50
sudo sysctl vm.vfs_cache_pressure=50
kết quả
vm.vfs_cache_pressure = 50
Để cấu hình vẫn tồn tại sau khi reboot
sudo nano /etc/sysctl.conf
#paste cấu hình vào cuối cùng file
vm.vfs_cache_pressure=50
5./ Thảm khảo
https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04
chúc các bạn thành công.