Hướng dẫn tạo Ram ảo – Swap cho VPS Ubuntu

swap hay thường còn được gọi là Ram ảo đóng một vai trò quan trọng trong việc hoạt động hiệu quả của hệ thống Linux, cung cấp bộ nhớ ảo bổ sung khi RAM vật lý (Random Access Memory) sắp hết. Bài viết này sẽ đi sâu vào khái niệm về không gian swap và tầm quan trọng của nó trên cả các phiên bản CentOS, Almalinux và Ubuntu.

Khái niệm không gian Swap là gì?

Không gian swap, còn được gọi là bộ nhớ ảo, là một khu vực đã được chỉ định trên thiết bị lưu trữ của hệ thống (thường là ổ cứng) và hoạt động như một phần mở rộng của RAM. Khi RAM vật lý được sử dụng gần hết, hệ điều hành sẽ di chuyển dữ liệu ít được sử dụng từ RAM sang không gian swap, cho phép hệ thống tiếp tục hoạt động và ngăn ngừa các sự cố do hết bộ nhớ RAM.

Tầm quan trọng của Swap

Không gian swap giúp ngăn ngừa sự cố hết bộ nhớ bằng cách tạm thời chuyển các tiến trình hoặc trang dữ liệu không hoạt động tới ổ đĩa.

Ổn định hệ thống: swap giúp cải thiện tính ổn định của hệ thống bằng cách đảm bảo các tiến trình và nhiệm vụ quan trọng có thể tiếp tục hoạt động ngay cả khi RAM vật lý đã đầy. Điều này đặc biệt quan trọng đối với máy chủ và các ứng dụng yêu cầu nhiều tài nguyên.

Hỗ trợ chế độ ngủ (Hibernate): swap là yếu tố quan trọng cho chế độ ngủ, một tính năng tiết kiệm năng lượng. Khi một hệ thống vào chế độ ngủ, trạng thái hiện tại của nó được lưu vào không gian swap, cho phép hệ thống tiếp tục làm việc chính xác từ nơi nó dừng lại sau khi bật nguồn.

Cách tạo swap trên Ubuntu

Trước tiên, bạn có thể kiểm tra xem VPS của bạn đã có phân vùng hoặc tệp trao đổi chưa. Sử dụng lệnh sau để kiểm tra.

sudo swapon --show

Nếu VPS của bạn chưa có swap thì bạn có thể tạo swap bằng lệnh sau đây, trong ví dụ mình sẽ tạo swap có dung lượng 2GB, thông thường dung lượng swap bằng dung lượng ram/2, ví dụ VPS bạn có 4GB ram thì bạn nên tạo swap là 2GB. Bạn tạo swap 4GB hoặc cao hơn cũng được nhưng sẽ không hiệu quả vì tốc độ truy xuất ở swap chậm hơn so với ram, nó chỉ dự phòng mà thôi.

Tiếp theo bạn chạy lần lượt các lệnh sau nhé.

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Khi khởi động lại VPS thường mất swap nên bạn phải thêm lệnh dưới đây để khi khởi động lại swap vẫn được Boot

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

Như vậy là bạn đã thêm thành công swap trên VPS Ubuntu

Điều chỉnh tham số hạt nhân Swappiness

“Swappiness” là một tham số kernel trong hệ điều hành Linux kiểm soát sự cân bằng giữa việc hoán đổi bộ nhớ thời gian chạy sang đĩa và giải phóng nó để các tiến trình khác sử dụng. Giá trị của tham số swappiness có thể được đặt trong phạm vi từ 0 đến 100 và nó xác định tùy chọn hoán đổi các tiến trình vào ổ cứng khi mức sử dụng bộ nhớ tăng lên.

Giá trị 0 có nghĩa là hệ thống sẽ không sử dụng swap và giá trị 100 có nghĩa là hệ thống sẽ chủ động sử dụng không gian hoán đổi. Giá trị trong khoảng 60-80 là tối ưu cho hầu hết các hệ thống.

Để điều chỉnh giá trị swappiness trong Ubuntu, hãy làm theo các bước sau:

Bạn có thể sử dụng lệnh sau để điều chỉnh swappiness giá trị tạm thời:

sudo sysctl vm.swappiness=10 

Để thực hiện các thay đổi vĩnh viễn bạn hãy mở tệp cấu hình sysctl

sudo nano /etc/sysctl.conf

Tiếp theo thêm dòng dưới đây vào cuối file vừa mở lên sau đó lưu lại.

vm.swappiness=10

Thay thế 10 bằng giá trị mong muốn cho khả năng hoán đổi, trong đó giá trị 0 có nghĩa là hệ thống sẽ không sử dụng không gian hoán đổi và giá trị 100 có nghĩa là hệ thống sẽ chủ động sử dụng không gian hoán đổi như đã nói ở trên

Để áp dụng các thay đổi mà mà không cần khởi động lại VPS bạn có thể chạy lệnh sau

sudo sysctl -p

Vậy là xong, bạn có thể sử dụng lệnh sau để xem swap

free -h
sudo swapon --show

Hoặc bạn cũng có thể dùng lệnh htop để xem cũng được.

Hãy nhớ rằng không gian trao đổi có thể giúp ổn định hệ thống, nhưng việc phụ thuộc quá nhiều vào nó là không nên, nếu bạn theo dõi VPS thấy VPS thiếu RAM thì nên nâng cấp RAM sẽ giúp hệ thống ổn định hơn.

Xóa Swap trên Ubuntu

Để xoá swap bạn có thể sử dụng lệnh sau

1. Tắt Swap

sudo swapoff /swapfile

2. Xoá Swap khỏi fstab

sudo nano /etc/fstab

Xác định vị trí dòng chứa swap và xóa nó:

1/swapfile swap swap defaults 0 0

3. Xoá Swap

sudo rm /swapfile

Kết luận

Trong bài viết này, chúng tôi đã thảo luận về các bước để thêm Swap trên hệ điều hành Ubuntu 22.04. Tăng không gian trao đổi (Swap) là điều quan trọng để ngăn chặn các vấn đề về hiệu suất trên các hệ thống có RAM hạn chế nhưng mình vẫn nhắc lại việc phụ thuộc quá nhiều vào swap là không nên, nếu bạn theo dõi VPS thấy VPS thiếu RAM thì nên nâng cấp RAM sẽ giúp hệ thống ổn định hơn.

Chúc bạn thành công.

daotiendung

Tiến Dũng Đào chuyên quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress với hơn 5 năm phát triển theme và plugin. Sở thích của anh là đọc, viết blog, đi du lịch, tập võ và chia sẻ các kiến thức cho mọi người.

Bài viết liên quan