Tạo Swap trong Linux

Swap là gì?

Swap là RAM ảo, nó sử dụng ổ đĩa của máy tính làm RAM. Khi hệ thống Linux hết RAM, các tài nguyên không hoạt động sẽ được chuyển sang vùng RAM ảo này để giải phóng bớt tài nguyên của RAM vật lý.

Không gian Swap có thể ở dạng phân vùng vật lý hoặc là tệp swap. Trong hầu hết các trường hợp, khi hệ thống Linux chạy trên máy ảo, nó sẽ không có sẵn phân vùng swap. Vì vậy lựa chọn duy nhất là tạo swap file. Bài này sẽ hướng dẫn các bạn cách tạo swap file trên VPS Linux.

Cách tạo Swap File

Thực hiện theo các bước bên dưới để tạo file Swap với dung lượng 1GB. Nếu bạn muốn thêm 2GB thay vì 1GB, hay thay thế giá trị 1GB thành 2GB.

  1. Tạo một file để sử dụng làm swap
1
sudo fallocate -l 1G /swapfile

Nếu faillocate chưa được cài đặt hoặc nếu bạn nhận được thông báo lỗi nói rằng fallocate failed: Operation not supported thì bạn có thể sử dụng lệnh sau để tạo swap file:

1
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
  1. Thiết lập quyền truy cập cho file swap này. Chỉ tài khoản root mới có quyền truy cập.
1
sudo chmod 600 /swapfile
  1. Định dạng lại cho file swap.
1
sudo mkswap /swapfile
  1. Kích hoạt swap file.
1
sudo swapon /swapfile

Để hệ thống tự động sử dụng file swap mỗi khi khởi động, bạn cần khai báo thêm trong /etc/fstab.

Mở file /etc/fstab và thêm vào dòng sau:

1
/swapfile swap swap defaults 0 0
  1. Để chắc chắn rằng file swap đã được kích hoạt và sử dụng, bạn có thể kiểm tra như sau:
1
sudo swapon --show

Kết quả:

1
2
NAME      TYPE  SIZE   USED PRIO
/swapfile file 1024M 507.4M -1

Kiểm tra dung lượng còn trống (free) và đã sử dụng (used) của swap bằng cách sử dụng lệnh free -m:

1
sudo free -h

Kết quả:

1
2
3
              total        used        free      shared  buff/cache   available
Mem: 488M 158M 83M 2.3M 246M 217M
Swap: 1.0G 506M 517M

Làm thế nào để điều chỉnh giá trị swappiness

Tham số Swappiness là một thuộc tính của Linux để xác định khi nào hệ thống sẽ di chuyển dữ liệu trong RAM sang swap.

Swappiness có giá trị từ 0 đến 100

Swappiness có giá trị càng lớn thì hệ thống sẽ sử dụng Swap càng sớm càng tốt. Trong khi giá trị càng nhỏ thì hệ thống sẽ sử dụng Swap càng chậm càng tốt.

Ví dụ: bộ nhớ RAM của bạn là 8Gb và bạn thiết lập giá trị của Swappiness là 60. Khi hệ thống sử dụng 60% bộ nhớ RAM thì sẽ bắt đầu sử dụng Swap.

Nếu thời gian giải phóng bộ nhớ RAM chậm hơn thời gian mà các chương trình sẽ tiêu thụ dấn đến quá tải cho hệ thống, hãy thiết lập để sử dụng Swap càng sớm càng tốt. Trì hoãn sử dụng Swap nếu bộ nhớ RAM của bạn giải phóng kịp thời để phục vụ cho các chương trình. Bởi vì sử dụng bộ nhớ RAM sẽ giúp hệ thống chạy nhanh hơn.

Giá trị swappiness mặc định là 60. Bạn có thể kiểm tra giá trị swappiness hiện tại bằng cách gõ lệnh sau:

1
cat /proc/sys/vm/swappiness

Kết quả:

1
60

Mặc dù giá trị swappiness mặc định là 60 nhìn chung tương đối ổn đối với hầu hết các hệ thống. Nhưng trong một số trường hợp, bạn cần điều chỉnh giá trị này thấp hơn.

Ví dụ: bạn cần đặt giá trị swappiness là 10 thì sẽ gõ lệnh sau:

1
sudo sysctl vm.swappiness=10

Để đảm bảo tham số này vẫn còn giữ nguyên mỗi khi khởi động lại hệ thống, hãy mở file /etc/sysctl.conf và thêm vào dòng sau:

1
vm.swappiness=10

Giá trị này sẽ tùy thuộc vào hệ thống của bạn và cách sử dụng bộ nhớ của nó. Do đó bạn nên điều chỉnh tham số này theo từng bước để có giá trị tối ưu nhất.

Cách xóa Swap File

Vì lý do nào đó, bạn không muốn sử dụng swap file nữa, hay làm theo các bước sau:

  1. Deactivate the swap:
1
sudo swapoff -v /swapfile
  1. Xóa dòng /swapfile swap swap defaults 0 0 trong file /etc/fstab

  2. Cuối cùng, xóa file swap đi bằng lệnh sau:

1
sudo rm /swapfile

Kết luận:

Việc sử dụng swap file là đơn giản và dễ dàng hơn việc tạo phân vùng swap.

Mặc dù sử dụng không gian Swap là chậm hơn nhiều so với bộ nhớ RAM vật lý nhưng đổi lại bạn sẽ tiết kiệm được chi phí cho việc nâng cấp dung lượng RAM vật lý.

Nếu bạn gặp sự cố hoặc có phản hồi, hãy để lại nhận xét bên dưới.

Bài dịch từ: linuxize.com

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×