Hướng dẫn Cài Đặt và Cấu Hình Swap (bộ nhớ ảo) Trên Máy Chủ Linux

7 14.06.2024
I. Giới Thiệu

Swap là không gian trên đĩa cứng được sử dụng khi bộ nhớ vật lý (RAM) của hệ thống đầy. Khi hệ thống Linux hết RAM, các trang bộ nhớ không được sử dụng thường xuyên có thể được di chuyển từ RAM vào không gian swap để giải phóng RAM cho các tiến trình hiện tại. Điều này giúp hệ thống tránh bị “out of memory” và duy trì hoạt động.

Có 2 loại swap:

  • Swap Partition: Một phân vùng riêng biệt trên đĩa cứng chỉ dành riêng cho swap.
  • Swap File: Một tệp đặc biệt trên hệ thống tệp của bạn được sử dụng làm không gian swap

=> Khi hệ thống Linux cần thêm bộ nhớ nhưng RAM đã đầy, kernel sẽ di chuyển một số dữ liệu không sử dụng nhiều từ RAM sang không gian swap. Khi dữ liệu đó cần thiết trở lại, nó sẽ được chuyển lại vào RAM, và có thể di chuyển dữ liệu khác ra swap nếu cần.

II. Tại Sao Cần Swap?

  • Tăng dung lượng bộ nhớ ảo: Swap cung cấp thêm dung lượng bộ nhớ ảo ngoài RAM.
  • Giảm thiểu tình trạng “out of memory”: Tránh tình trạng hệ thống bị treo hoặc bị kill các tiến trình khi hết bộ nhớ.
  • Quản lý hiệu quả tài nguyên hệ thống: Swap giúp tối ưu hóa việc sử dụng tài nguyên hệ thống bằng cách chuyển dữ liệu không cần thiết ra khỏi RAM.

Mô hình hoạt động:

1.1 14.06.2024

III. Kiểm Tra và Cài Đặt Swap

  1. Kiểm tra
    Zhost Tutorial
    sudo swapon --show
    (Nếu không có kết quả, nghĩa là hệ thống của bạn chưa có swap.)
  2. Tạo file Swap
    Zhost Tutorial
    sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
    (Tạo một file swap có dung lượng mong muốn là 2G)2 14.06.2024
  3. Thiết lập quyền cho file swap
    Zhost Tutorial
    sudo chmod 600 /swapfile
  4. Định dạng file swap
    Zhost Tutorial
    sudo mkswap /swapfile
    3 14.06.2024
  5. Kích hoạt file swap
    Zhost Tutorial
    sudo swapon /swapfile
  6. Kiểm tra lại swap
    Zhost Tutorial
    sudo swapon --show
    4 14.06.2024
  7. Thiết lập kích hoạt swap tự động khi khởi động lại hệ thống
    Zhost Tutorial
    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

    (Câu lệnh trên đảm bảo rằng swap file /swapfile sẽ được kích hoạt tự động mỗi khi hệ thống khởi động lại.)5 14.06.2024
  8. Điều chỉnh swappiness
    Swappiness là một tham số kernel trong Linux điều chỉnh cách hệ thống cân bằng việc sử dụng RAM và swap. Giá trị của swappiness nằm trong khoảng từ 0 đến 100.
    0: Hệ thống sẽ cố gắng tránh sử dụng swap và chỉ sử dụng khi RAM hoàn toàn đầy.
    100: Hệ thống sẽ sử dụng swap rất tích cực ngay cả khi RAM còn trống.
    Zhost Tutorial
    sudo sysctl vm.swappiness=10

    (Giảm mức độ sử dụng swap là 10, hệ thống sẽ cố gắng giữ dữ liệu trong RAM càng nhiều càng tốt và chỉ sử dụng swap khi thực sự cần thiết. Điều này giúp giảm thiểu việc sử dụng swap và giữ hiệu suất hệ thống cao hơn, vì truy cập RAM nhanh hơn nhiều so với truy cập swap trên đĩa cứng. Giá trị này tạm thời và sẽ bị mất sau khi khởi động lại máy chủ.)
    Zhost Tutorial
    echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
    Zhost Tutorial
    sudo sysctl -p

    (Giá trị này được thay đổi vĩnh viễn kể cả sau khi khởi động lại máy chủ.)
  9. Kiểm tra kết quả
    Zhost Tutorial
    free -h
    6 14.06.2024

Hoàn Thành Cài Đặt Swap.