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

https://docs.gluster.org/en/latest/Administrator%20Guide/Linux%20Kernel%20Tuning/#:~:text=vm.-,vfs_cache_pressure,of%20directory%20and%20inode%20objects.&text=When%20vfs_cache_pressure%3D0%2C%20the%20kernel,out%2Dof%2Dmemory%20conditions.

chúc các bạn thành công.

SaKuRai

Xin chào, Mình là Sakurai. Blog này là nơi để note lại và chia sẻ những kiến thức, kinh nghiệm mà mình và anh em trong Team. Cảm ơn các bạn đã quan tâm theo dõi!

You may also like...

Leave a Reply

Your email address will not be published.