swap ram

Tạo swap RAM bằng file swap trên Linux

Dưới đây là giải thích chi tiết về các bước tạo swap RAM bằng file swap trên Linux theo nội dung script của bạn:

1. Tạo file swap

  • Lệnh:

    dd if=/dev/zero of=/swap.img bs=1M count=4096
    

    Giải thích:
    Lệnh trên tạo một file có kích thước 4GB tại đường dẫn /swap.img. File này sẽ được dùng như một vùng swap.

  • Kiểm tra file:

    ls -lh /swap.img
    

    Giải thích:
    Lệnh này liệt kê thông tin file theo định dạng “human readable” để bạn kiểm tra kích thước và trạng thái file đã tạo.

2. Thiết lập quyền truy cập

  • Lệnh:

    sudo chmod 600 /swap.img
    

    Giải thích:
    Lệnh này thay đổi quyền của file /swap.img thành 600, tức chỉ có chủ (root) mới có quyền đọc và ghi. Điều này giúp bảo mật file swap của bạn.

  • Xác nhận lại quyền:

    ls -lh /swap.img
    

    Giải thích:
    Kiểm tra lại quyền của file sau khi đã thay đổi.

3. Chuyển file thành vùng swap

  • Tạo swap trên file:

    sudo mkswap /swap.img
    

    Giải thích:
    Lệnh mkswap định dạng file /swap.img thành vùng swap, chuẩn bị cho việc sử dụng nó như một bộ nhớ ảo.

  • Kích hoạt swap:

    sudo swapon /swap.img
    

    Giải thích:
    Lệnh swapon bật file swap vừa tạo, cho phép hệ thống sử dụng nó khi cần thiết.

4. Cấu hình tự động kích hoạt swap khi khởi động

  • Thêm mục vào fstab:

    echo '/swap.img none swap sw 0 0' | sudo tee -a /etc/fstab
    

    Giải thích:
    Dòng này ghi vào file /etc/fstab để tự động kích hoạt file swap mỗi khi hệ thống khởi động. Mục nhập gồm:

    • /swap.img: file swap.
    • none: không gán mountpoint cụ thể.
    • swap: kiểu mount là swap.
    • sw: các tùy chọn mặc định cho swap.
    • 0 0: các tham số dùng cho dump và fsck.
  • Xem lại nội dung fstab:

    cat /etc/fstab
    

    Giải thích:
    Xem lại file cấu hình để đảm bảo dòng cấu hình swap đã được thêm vào đúng cách.

5. Điều chỉnh tham số swappiness

Tham số swappiness xác định mức độ ưu tiên của hệ thống khi sử dụng swap so với RAM vật lý. Giá trị thấp (ví dụ 10) nghĩa là hệ thống ưu tiên sử dụng RAM và chỉ chuyển dữ liệu sang swap khi thực sự cần thiết.

  • Kiểm tra giá trị hiện tại:

    cat /proc/sys/vm/swappiness
    

    Giải thích:
    Lệnh này hiển thị giá trị swappiness hiện tại của hệ thống.

  • Thay đổi giá trị tạm thời:

    sudo sysctl vm.swappiness=10
    

    Giải thích:
    Lệnh này thay đổi giá trị swappiness của kernel thành 10, nhưng thay đổi này chỉ có hiệu lực cho phiên làm việc hiện tại.

  • Lưu thay đổi vĩnh viễn:

    sudo echo "vm.swappiness=10" >> /etc/sysctl.conf
    

    Giải thích:
    Dòng lệnh này thêm cấu hình vm.swappiness=10 vào file /etc/sysctl.conf để khi khởi động lại hệ thống, giá trị này được áp dụng tự động.
    Lưu ý: Trong một số trường hợp, do vấn đề về quyền của lệnh echo kết hợp với redirection, bạn có thể dùng cách thay thế sau để đảm bảo ghi file với quyền root:

    echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
    

Tổng kết

Script trên thực hiện các bước sau:

  1. Tạo một file swap có kích thước 4GB.
  2. Đảm bảo quyền truy cập của file chỉ dành cho root.
  3. Định dạng file thành vùng swap và kích hoạt nó.
  4. Cấu hình hệ thống tự động sử dụng file swap khi khởi động.
  5. Điều chỉnh tham số swappiness để tối ưu hiệu năng sử dụng bộ nhớ.

Quá trình này giúp hệ thống Linux có thêm bộ nhớ ảo hỗ trợ cho các tác vụ khi bộ nhớ vật lý cạn kiệt, từ đó cải thiện hiệu năng tổng thể.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *