Hướng dẫn tạo Swap trên CentOS 7

Giới thiệu
Swap là khái niệm bộ nhớ ảo được sử dụng trên hệ điều hành Linux. Khi VPS/Server hoạt động, nếu hết RAM hệ thống sẽ tự động sử dụng một phần ổ cứng để làm bộ nhớ cho các ứng dụng hoạt động.

Với những server không có swap, khi hết RAM hệ thống thường tự động stop service MySQL, do đó hay xuất hiện thông báo lỗi Establishing a Database Connection.

Do sử dụng ổ cứng có tốc độ chậm hơn RAM, nhất là với những server dùng ổ cứng thường không dùng SSD, do đó không nên thường xuyên sử dụng Swap sẽ làm giảm hiệu năng hệ thống. Nếu tình trạng hết RAM hay xảy ra, bạn hãy tối ưu server, tăng cache và nâng cấp bổ sung thêm RAM.

Nội dung

1. Điều kiện cần:
– Phần mềm PuTTY
– Thông tin đăng nhập server sử dụng PuTTY
– Server type: CentOS 7

2. Kiểm tra Swap
Sử dụng lệnh:

swapon -s

Nếu bạn không thấy gì tức là trên server chưa được tạo Swap

Hoặc bạn có thể sử dụng lệnh:

free -m

3. Kiểm tra dung lượng trống
Sử dụng lệnh:

df -h

4. Tạo swap
Sử dụng lệnh fallocate:

fallocate -l 4G /swapfile

Chú ý: Ở lệnh trên mình tạo file swap với dung lượng là 4Gb. Các bạn có thể sửa lại theo nhu cầu nhé!

Kiểm tra lại thông tin thiết lập đã đúng chưa sử dụng lệnh:

ls -lh /swapfile

5. Kích hoạt swap

Phân quyền cho swap:

chmod 600 /swapfile

Kiểm tra lại quyền đã thiết lập:

ls -lh /swapfile

Tạo phân vùng swap:

mkswap /swapfile

Kích hoạt swap:

swapon /swapfile

Như vậy là đã tạo thành công swap. Kiểm tra lại thông tin swap sử dụng lệnh:

swapon -s

Hoặc với:

free -m

6. Thiết lập swap tự động được kích hoạt mỗi khi reboot:

Để thiết lập tự động bằng cách sửa tập tin fstab sử dụng lệnh:

nano /etc/fstab

Thêm nội dung sau vào cuối tập tin fstab:

/swapfile swap swap sw 0 0

Sau đó sử dụng Ctrl + X, Nhấp tiếp Y đồng ý lưu, N là không đồng ý lưu, C là hủy bỏ.

7. Cấu hình Swappiness

Swappiness là mức độ ưu tiên sử dụng swap, khi lượng RAM còn lại bằng giá trị của swappiness (tính theo tỷ lệ phần trăm) thì swap sẽ được sử dụng. Swappiness có giá trị trong khoảng 0 – 100.

  1. swappiness = 0: swap chỉ được dùng khi RAM được sử dụng hết.
  2. swappiness = 10: swap được sử dụng khi RAM còn 10%.
  3. swappiness = 30: swap được sử dụng khi RAM còn 30%.
  4. swappiness = 100: swap được ưu tiên như là RAM.

Do tốc độ xử lý dữ liệu trên RAM cao hơn nhiều so với Swap, do đó bạn nên đặt giá trị này về gần với 0 để tận dụng tối đa sức mạnh hệ thống. Tốt nhất nên chỉnh về 10.

Kiểm tra mức độ sử dụng file swap của hệ thống bằng cách chạy dòng lệnh sau:

cat /proc/sys/vm/swappiness

CentOS 7 mặc định là thiết lập swappiness là 30

Để thiết lập swappiness lại với một giá trị khác bằng cách sử dụng lệnh sysctl:

sysctl vm.swappiness=10

Thiết lập trên tồn tại đến khi bạn reboot lại server. Để thiết lập tồn tại ngay cả khi reboot lại server bạn sửa tập tin sysctl.conf:

nano /etc/sysctl.conf

Thêm nội dung sau vào cuối tập tin sysctl.conf

vm.swappiness = 10

Sau đó sử dụng Ctrl + X, Nhấp tiếp Y đồng ý lưu, N là không đồng ý lưu, C là hủy bỏ.

Như vậy là mình đã hướng dẫn xong cách tạo swap trên CentOS 7. Mọi ý kiến góp ý xin mời các bạn comment bên dưới.

Comment của bạn

3 Comments on “Hướng dẫn tạo Swap trên CentOS 7

    1. Hello Trung,

      Bạn kiểm tra xem dung lượng VPS của bạn sử dụng còn free nhiều không. Nếu còn dư nhiều thì bạn nên tạo 2GB trở lên nhé.

    2. Tùy vào lượng RAM của bạn:
      – Nếu 1GB và 2GB RAM, hãy tạo Swap gấp đôi dung lượng RAM.

      Đây là kinh nghiệm của mình, tạo Swap trên sẽ cân đối được dung lượng ổ cứng và dung lượng Swap, tránh tình trạng Swap nhiều không có dùng mà lại thiếu dung lượng ổ cứng, sử dụng Swap trên ổ cứng SSD cho hiệu quả tốt nhất.