Scroll to top
SWAP là gì? Cách chỉnh SWAP để tăng hiệu suất hệ điều hành Linux

SWAP là gì? Cách chỉnh SWAP để tăng hiệu suất hệ điều hành Linux

ByYuto 14/10/2024 03:34
12min read

Tìm hiểu về SWAP trong hệ điều hành Linux, vai trò của nó trong việc tăng hiệu suất máy tính. Cách chỉnh sửa và tối ưu hóa SWAP.

SWAP là gì?

SWAP, hay còn được biết đến với tên gọi bộ nhớ ảo, RAM ảo, là một kỹ thuật sử dụng trong các hệ điều hành như Ubuntu để giúp máy tính tiếp tục hoạt động mượt mà khi RAM bị sử dụng hết. Trong trường hợp này, hệ thống sẽ sử dụng một phần của ổ đĩa cứng như một phần mở rộng của RAM, di chuyển dữ liệu ít sử dụng từ RAM sang khu vực SWAP.

Đặc điểm của SWAP

  • Hiệu suất: Mặc dù SWAP giúp hệ thống không bị treo khi RAM đầy, tốc độ truy cập ổ đĩa cứng thường chậm hơn nhiều so với RAM. Do đó, việc sử dụng SWAP sẽ không nhanh bằng việc truy cập trực tiếp vào RAM.

  • Vị trí lưu trữ: SWAP có thể tồn tại dưới dạng một file trên hệ thống (SWAP file) hoặc dưới dạng một phân vùng riêng biệt trên ổ đĩa (SWAP partition).

  • Kích thước: Mặc dù không có quy tắc cụ thể, kích thước của khu vực SWAP thường được đề xuất dựa trên kích thước RAM của máy tính.

Tại sao cần sử dụng SWAP?

Việc sử dụng SWAP thay thế cho RAM tuy chậm nhưng vẫn hơn là máy tính bị treo khi không đủ dung lượng RAM. Bạn có thể chỉ định khi nào hệ thống được phép sử dụng SWAP, do đó dù bạn có ít hay nhiều dung lượng RAM thì vẫn luôn nên sử dụng SWAP để đảm bảo hệ điều hành luôn hoạt động ổn định.

  • Tránh tình trạng hết RAM: Khi hệ thống sử dụng hết RAM, SWAP giúp tránh tình trạng treo máy hoặc mất dữ liệu bằng cách cung cấp không gian bộ nhớ ảo.

  • Quản lý hiệu quả: Hệ thống sẽ tự động di chuyển dữ liệu ít sử dụng từ RAM sang SWAP, giúp RAM có thêm không gian cho các tác vụ quan trọng hơn.

  • Hỗ trợ Hibernate (ngủ đông): Hibernate là tính năng giúp lưu trạng thái hiện tại của máy tính vào ổ đĩa và sau đó tắt máy. Để thực hiện được điều này, dữ liệu trong RAM cần được lưu vào khu vực SWAP.

  • Tăng hiệu suất: Trong một số trường hợp, việc sử dụng SWAP có thể giúp tăng hiệu suất máy tính bằng cách giải phóng RAM cho các ứng dụng và tác vụ cần nhiều bộ nhớ hơn.

  • Chi phí thấp: So với việc nâng cấp RAM, việc cấu hình và sử dụng SWAP trên ổ đĩa cứng là một giải pháp tiết kiệm chi phí, đặc biệt khi chỉ cần giải quyết tình trạng tạm thời hết RAM.

SWAP là gì? Cách chỉnh SWAP để tăng hiệu suất hệ điều hành Linux

Nên để kích thước SWAP là bao nhiêu?

  • Nếu RAM ≤ 1GB: SWAP nên bằng RAM và tối đa gấp đôi, tuỳ vào dung lượng ổ đĩa.
  • Nếu RAM > 1GB:
    • Sử dụng chế độ ngủ đông: SWAP = RAM
    • Không sử dụng chế độ ngủ đông: SWAP tối thiểu được tính bằng phương pháp lấy căn bậc hai của dung lượng RAM. Ví dụ, nếu bạn có 4GB RAM, căn bậc hai của 4 là 2. Vậy bạn nên cài đặt SWAP tối thiểu là 2GB. SWAP tối đa thông thường là gấp đôi dung lượng RAM. Nếu bạn có 4GB RAM, SWAP tối đa nên là 8GB.

Lưu ý là tốc độ xử lý của SWAP chậm hơn RAM rất nhiều. 1 giây trên RAM bằng hơn 1 phút với SSD, và hơn 15 phút nếu là HDD.

Nếu VPS, Server, máy của bạn sử dụng nhiều SWAP thì đó là dấu hiệu bạn nên nâng cấp thêm RAM.

Cách thêm bộ nhớ SWAP trên hệ điều hành Ubuntu

Bộ nhớ SWAP giúp tăng hiệu suất cho máy tính, đặc biệt khi RAM bị sử dụng hết. Dưới đây là hướng dẫn chi tiết để thêm bộ nhớ SWAP cho hệ điều hành Ubuntu.

Kiểm tra SWAP hiện tại của hệ thống

Câu lệnh sau dùng để kiểm tra xem hệ kích thước SWAP đang sử dụng

zsh
Copy
1
free -h
zsh
Copy
1
2
3
               total        used        free      shared  buff/cache   available
Mem:           7.6Gi       3.9Gi       155Mi       1.0Mi       3.6Gi       3.4Gi
Swap:             0B          0B          0B

Kết quả cho thấy hiện tại SWAP đang là 0.

Tạo SWAP file

Câu lệnh dưới đây sẽ tạo SWAP file có dung lượng là 8GB, bạn có thể thay đổi theo ý muốn.

zsh
Copy
1
sudo dd if=/dev/zero of=/swapfile bs=1G count=8 status=progress

Kết quả

zsh
Copy
1
2
3
4
8589934592 bytes (8.6 GB, 8.0 GiB) copied, 60 s, 142 MB/s
8+0 records in
8+0 records out
8589934592 bytes (8.6 GB, 8.0 GiB) copied, 60.4002 s, 142 MB/s

Thiết lập quyền truy cập cho SWAP file vừa tạo

zsh
Copy
1
sudo chmod 600 /swapfile

Kích hoạt SWAP

zsh
Copy
1
sudo mkswap /swapfile && sudo swapon /swapfile

Kết quả

zsh
Copy
1
2
Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)
no label, UUID=fcbc3b42-c2ed-4f85-b67f-f3df55e8dbfb

Kiểm tra SWAP hoạt động

Sử dụng lệnh free -h một lần nữa để đảm bảo rằng bộ nhớ SWAP đã được thêm vào và kích hoạt thành công.

zsh
Copy
1
free -h

Kết quả

zsh
Copy
1
2
3
               total        used        free      shared  buff/cache   available
Mem:           7.6Gi       4.0Gi       898Mi       1.0Mi       2.8Gi       3.4Gi
Swap:          8.0Gi          0B       8.0Gi

Cài đặt cho SWAP tự động kích hoạt khi khởi động

Khi khởi động lại hệ điều hành thì SWAP sẽ bị xóa, do đó để đảm bảo SWAP luôn được kích hoạt khi khởi động, ta phải chỉnh sửa file /etc/fstab, có thể bằng câu lệnh như sau:

zsh
Copy
1
sudo vi /etc/fstab
/etc/fstab
Copy
1
/swapfile swap swap defaults 0 0 # Thêm dòng này

Tối ưu hóa sử dụng SWAP trên Ubuntu

Để tận dụng tối đa SWAP, bạn cần tùy chỉnh một số tham số quan trọng.

Sửa file /etc/sysctl.conf, có thể bằng câu lệnh như sau:

zsh
Copy
1
sudo vi /etc/sysctl.conf
/etc/sysctl.conf
Copy
1
2
3
vm.swappiness = 10

vm.vfs_cache_pressure = 50

Sau đó khởi động lại hệ điều hành.

swappiness là gì?

Kiểm tra swappiness bằng câu lệnh sau:

zsh
Copy
1
cat /proc/sys/vm/swappiness

Tham số swappiness quyết định mức độ mà hệ thống sẽ chuyển dữ liệu từ RAM sang bộ nhớ SWAP. Giá trị này nằm trong khoảng từ 0 đến 100, với giá trị mặc định là 30.

  • Swappiness = 0: hệ thống sẽ tránh sử dụng SWAP hết mức có thể.
  • Swappiness = 100: hệ thống sẽ ưu tiên sử dụng SWAP, giữ cho RAM luôn có không gian trống.
  • Swappiness = 10: hệ thống chỉ bắt đầu sử dụng SWAP khi RAM còn khoảng 10% dung lượng trống.

Gợi ý: Do SWAP chậm hơn RAM nhiều, để tăng hiệu suất máy tính, bạn nên giới hạn việc sử dụng SWAP. Một giá trị Swappiness khuyến nghị là 10.

vfs_cache_pressure là gì?

Kiểm tra vfs_cache_pressure bằng câu lệnh sau:

zsh
Copy
1
cat /proc/sys/vm/vfs_cache_pressure

Tham số vfs_cache_pressure kiểm soát cách hệ thống lưu trữ và làm mới siêu dữ liệu của hệ thống tệp (filesystem metadata). Việc truy cập liên tục vào nó có thể làm chậm hệ thống.

Giá trị mặc định được đặt ở mức 100, có nghĩa là nó sẽ bị xóa đi nhanh chóng. Do đó để lưu trữ được lâu hơn thì bạn nên để giá trị này là 50.


Kết luận

SWAP rất quan trọng, như là một phần dự phòng của RAM, nhưng cũng là con dao 2 lưỡi khi tốc độ truy xuất dữ liệu rất chậm, do đó tốt nhất là không nên sử dụng HDD làm SWAP. Trường hợp bạn cần sử dụng SWAP trong khi ổ cứng là HDD thì hãy cài đặt SWAP ở mức thấp để đảm bảo hệ thống được hoạt động ổn định.

Việc hiểu rõ và tối ưu hóa bộ nhớ SWAP trên hệ điều hành Ubuntu không chỉ giúp tăng hiệu suất máy tính mà còn giúp máy hoạt động mượt mà hơn trong các tình huống RAM gặp giới hạn.

Đánh giá bài viết: 4.9/5 (20 đánh giá)
Bạn chưa đánh giá

Bình luận

Author
hoclaptrinh.io author
Tác giả:Yuto Yasunaga

Mình là một full stack developer, tốt nghiệp và làm việc tại Nhật Bản. Trang web này là nơi mình tổng hợp, đúc kết và lưu trữ lại những kiến thức trong quá trình học và làm việc liên quan đến IT.
Hy vọng những bài viết ở website này sẽ có ích cho bạn.