Tìm hiểu và cấu hình Swap trên Linux

22-December-2016

Hầu hết các hệ điều hành từ lâu đã có khái niệm về bộ nhớ ảo, trong đó Linux thì bộ nhớ ảo được gọi là Swap. Khi các ứng dụng cần Ram, hệ điều hành sẽ tự động cấp phát Ram còn thừa, nếu Ram cạn kiệt khi đó VPS sẽ dùng một phần ổ cứng làm Swap để lưu trữ. Với chức năng đó, Swap là rất quan trọng đảm bảo cho hoạt động ổn định của hệ thống, khắc phục hiện tượng các ứng dụng bị crash hoặc hệ thống bị treo do thiếu RAM. Tình trạng crash MySQL hoặc các tiến trình bị hủy khi sử dụng VPS là ví dụ tiêu biểu nhất cho vấn đề này. Với các VPS có lượng RAM hạn chế – dưới 1 GB thì tạo swap đặc biệt quan trọng vì nó giúp khách hàng tăng tốc độ của VPS, giảm việc truy cập chậm hay quá tải trên VPS vì thiếu RAM.

Với các VPS thì swap thường không có sẵn, muốn sử dụng khách hàng thông thường phải tự tạo ra, bài viết này sẽ hướng dẫn khách hàng tạo và cầu hình swap hoạt động ổn định và hiệu quả nhất.
Đầu tiền khách hàng cần truy cập vào VPS thông qua SSH

  • Kiểm tra VPS của mình đã có Swap hay chưa bằng cách chạy lệnh sau:
    • free -m
    • top
    • swapon –s

Nếu như Swap không hoạt động thì khách hàng sẽ nhìn thấy như sau: Swap 0 0 0

  • Sau khi kiểm tra Swap không hoạt động, khách hàng có thể tiến hành tạo swap cho VPS của mình.
  • Khách hàng cần chạy lệnh: #dd if=/dev/zero of=/swapfile bs=1024 count=1024k ( Lệnh trên sẽ tạo Swap có dung lượng 1Gb. Ngoài ra khách hàng có thể thay thế giá trị count bằng các số khác nhau như 512k hoặc là 2048k để tạo Swap dung lượng 512MB, 2Gb…)
  • Tiếp theo khách hàng cần tạo Swapfile bằng lệnh: # mkswap /swapfile
  • Sau khi đã tạo Swapfile, khách hàng phải kích hoạt Swap bằng cách: # swapon /swapfile
  • Phân quyền cho Swap bằng cách chạy lệnh :
    • chown root:root /swapfile
    • chmod 0600 /swapfile
  • Kích hoạt SWAP tự động khởi động khi khở động lại VPS. Nếu khách hàng tạo Swap mà bỏ qua bước này thì mỗi khi khởi động lại VPS, SWAP sẽ bị tắt và khách hàng cần phải bật thủ công bằng lệnh Swap on:
    • Truy cập vào file: # vi /etc/fstab
    • Sau đó thêm dòng: /swapfile swap swap defaults 0 0
    • Sau đó tiến hành lưu lại.

Sau khi thực hiện sau hoàn tất các bước trên khách hàng đã hoàn tất tạo Swap cho VPS của mình, tuy nhiên để Swap hoạt động một cách hiệu quả hơn cho VPS khách hàng cần cấu hình thêm Swappiness cho VPS.

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 1 – 100. Được tình như sau:

  • swappiness = 0: swap chỉ được dùng khi RAM được sử dụng hết
  • swappiness = 10: swap được sử dụng khi RAM còn 10%.
  • swappiness = 60: giá trị mặc định
  • swappiness = 100: swap được ưu tiên như là RAM.


Khách hàng có thể dựa trên các tiêu chí hoạt động của VPS mà thiết lập thông số của Swappiness cho VPS một cách tốt hơn.

  • Để kiểm tra giá trị swappiness hiện tại của hệ thống, khách hàng dùng lệnh: # cat/proc/sys/vm/swappiness (mặc định thông thường sẽ là 60).
  • Khách hàng có thể điều đình swappiness bằng cách sau:
    • Truy cập vào: # vi /etc/sysctl.conf
    • Tìm tới dòng: vm.swappiness = 60 ( Ở đây khách hàng có thể thay thế giá trị mà mình cần thay đổi, tuy nhiên đôi khi sẽ không tìm thấy dòng này thì khi đó khách hàng có thể thêm vào)
    • Sau khi đã thiết lại giá trị cần thiết cho swappiness, khách hàng lưu lại các thay đổi và thoát ra.
  • Sau đó khởi động lại VPS.
  • Kiểm tra lại Swap đã hoạt động khi vừa thiết lập:
    • swapon-s
    • cat/proc/sys/vm/swappiness

Chúc khách hàng thành công trong việc sử dụng Swap cho VPS của mình.