Tạo Swap File trên CentOS / RHEL / Ubuntu / Debian

Swap là một phần dung lượng ổ cứng và được sử dụng để như bộ nhớ tạm thời (RAM) để hệ thống tiếp tục hoạt động. Với những hệ thống không có đủ RAM để hoạt động thì việc sử dụng swap như RAM ảo là một giải pháp khá hoàn hảo và cần thiết. Giúp hệ thống hoạt động ổn định hơn và hạn chế trường hợp những services bị tạm dừng đột ngột, gây ra những sự cố không đáng có.

Kiểm tra thông tin hệ thống​



Đầu tiên, chúng ta sẽ kiểm tra dung lượng RAM và hệ thống đã kích hoạt swap hay chưa bằng cách sử dụng lệnh free -m.
Code:
[[email protected] ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3937         762        2204          19         970        2881
Swap:             0           0           0
Dung lượng RAM mình có 4 GB và các thông số swap ở đây đều là 0, như vậy VPS của mình chưa sử dụng swap. Giờ thì chúng ta sẽ kiểm tra xem dung lượng còn trống của ổ cứng bằng lệnh df -h.
Code:
[[email protected] ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        958M     0  958M   0% /dev
tmpfs           976M     0  976M   0% /dev/shm
tmpfs           976M  113M  864M  12% /run
tmpfs           976M     0  976M   0% /sys/fs/cgroup
/dev/sda1        19G  2.8G   16G  16% /
tmpfs           196M     0  196M   0% /run/user/0
Như ở đây thì mình còn 16 GB trống và VPS của mình không dùng để lưu trữ nên thoải mái tạo swap.

Tạo swap file​



Trước khi bắt đầu thì chúng ta nên tính toán dung lượng swap cần tạo sao cho phù hợp và tối ưu. Dưới đây là bảng dung lượng swap mình hay tạo cho những server của mình:
RAMDung lượng swap
256 MB256 MB
512 MB512 MB
1 GB1 GB
2 GB1 GB
3 GB2 GB
4 GB2 GB
6 GB2 GB
8 GB3 GB
12 GB3 GB
16 GB4 GB
32 GB6 GB
Tiếp theo là sử dụng lệnh bên dưới để tạo swap, 2048k tương đương với 2 GB, thay đổi cho phù hợp nhu cầu:
Bash:
dd if=/dev/zero of=/swapfile bs=1024 count=2048k
Giờ thì chỉ cần chạy những lệnh dưới đây để kích hoạt swap file (CentOS, RHEL):
Bash:
ls -lah /swapfile
mkswap /swapfile
swapon /swapfile
chown root:root /swapfile
chmod 0600 /swapfile
swapon -s
echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
mount -a
Đối với Ubuntu, Debian:
Bash:
ls -lah /swapfile
mkswap /swapfile
swapon /swapfile
chown root:root /swapfile
chmod 0600 /swapfile
swapon -s
echo "/swapfile  none  swap  sw  0 0" >> /etc/fstab
mount -a
Kiểm tra lại RAM và swap bằng lệnh free -m và được kết quả sau:
Code:
[[email protected] ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3937         760        2206          19         970        2883
Swap:          2047           0        2047
Giờ thì swap vẫn sẽ hoạt động ngay cả khi khởi động lại server, các bạn có thể khởi động lại và sử dụng lệnh free -m để kiểm tra cho chắc.

Thay đổi dung lượng swap​



Vì một vài lí do nào đó các bạn muốn thay đổi dung lượng swap đã tạo với những bước ở trên thì sử dụng những lệnh bên dưới để tắt và xóa swap:
Bash:
swapoff /swapfile
rm -f /swapfile
Tạo mới file swap với dung lượng mong muốn, giờ mình sẽ tạo 4 GB (4096k):
Bash:
dd if=/dev/zero of=/swapfile bs=1024 count=4096k
Tiếp tục chạy những lệnh dưới đây:
Bash:
ls -lah /swapfile
mkswap /swapfile
swapon /swapfile
chown root:root /swapfile
chmod 0600 /swapfile
swapon -s
mount -a
Giờ thì khởi động lại server và kiểm tra lại swap thôi.

Tổng kết​



Như đã nói ở trên thì swap là giải pháp khá hoàn hảo trong trường hợp hệ thống không đủ RAM để hoạt động. Tuy nhiên, đây chỉ là giải pháp mang tính tạm thời, swap không thể hoàn toàn thay thế RAM vì những đặc tính phần cứng. Bên cạnh việc làm giảm tuổi thọ ổ cứng thì việc lạm dụng swap đôi khi lại làm hệ thống hoạt động kém hiệu quả hơn. Giải pháp hoàn hảo nhất vẫn là nâng cấp RAM dù có hơi tốn kém nhưng cũng sẽ ít rủi ro hơn.
 
Top