Thêm swap space là một trong những cách hiệu quả nhất để hạn chế tình trạng hết bộ nhớ trên hệ thống. Bài viết này sẽ hướng dẫn chi tiết cách thêm Swap Space trên Ubuntu 20.04.
Khái niệm Swap là gì?
Swap là một phần ổ đĩa cứng được dành cho hệ điều hành để tạm thời lưu trữ các dữ liệu không chứa được trong RAM. Phương pháp này giúp tăng lượng thông tin và dữ liệu mà server có thể chứa bên trong bộ nhớ đang làm việc. Dung lượng swap này sẽ được sử dụng khi không còn đủ chỗ trống trong RAM để chứa dữ liệu các ứng dụng đang được sử dụng.
Các thông tin được lưu trong đĩa thường sẽ có tốc độ truy cập chậm hơn khá nhiều so với khi lưu trữ trên RAM, đồng thời hệ điều hành cũng ưu tiên lưu trữ dữ liệu của các ứng dụng đang chạy trong bộ nhớ, còn swap dùng để lưu trữ các dữ liệu cũ.
Nhìn chung thì việc sử dụng bộ nhớ swap là một phương pháp đơn giản mà rất hiệu quả khi hệ thống không có đủ RAM để đáp ứng nhu cầu sử dụng, nhất là đối với các hệ thống không có bộ nhớ SSD.
Các bước thêm swap space trên Ubuntu 20.04
Dưới đây là 6 bước để thêm swap space chi tiết trên Ubuntu 20.04.
Bước 1 – Kiểm tra hệ thống
Trước khi bắt đầu cần kiểm tra xem hệ thống đã có sẵn bộ nhớ swap hay chưa:
sudo swapon --show
Nếu không có bất kỳ output nào thì hệ thống vẫn chưa có bộ nhớ swap. Ngoài ra bạn cũng có thể chạy thêm lệnh free
để xác nhận rằng không có swap trên hệ thống:
free -h
Bước 2 – Kiểm tra bộ nhớ khả dụng trên phân vùng ổ cứng
Trước khi tạo file swap, ta sẽ kiểm tra dung lượng còn trống của ổ đĩa hiện tại để đảm bảo rằng vẫn còn đủ chỗ trống cho swap space:
df -h
Output
Filesystem Size Used Avail Use% Mounted on
udev 474M 0 474M 0% /dev
tmpfs 99M 932K 98M 1% /run
/dev/vda1 25G 1.4G 23G 7% /
tmpfs 491M 0 491M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 491M 0 491M 0% /sys/fs/cgroup
/dev/vda15 105M 3.9M 101M 4% /boot/efi
/dev/loop0 55M 55M 0 100% /snap/core18/1705
/dev/loop1 69M 69M 0 100% /snap/lxd/14804
/dev/loop2 28M 28M 0 100% /snap/snapd/7264
tmpfs 99M 0 99M 0% /run/user/1000
Thiết bị có giá trị ở cột Mounted on
là /
chính là ổ đĩa của bạn. Theo như output này thì bạn vẫn còn trống 23GB.
Việc lựa chọn kích thước của bộ nhớ swap còn tùy thuộc nhiều vào nhu cầu cá nhân hay yêu cầu của ứng dụng. Thường thì bạn chỉ cần bộ nhớ bằng hoặc gấp đôi lượng RAM hiện có trên hệ thống, tuy nhiên thường swap thường không lớn hơn 4GB.
Bước 3 – Tạo file swap
Bây giờ ta có thể tạo một file swap trên filesystem. Cách tốt nhất để tạo file này là dùng chương trình fallocate
, cho phép tạo nhanh một file với kích thước được chỉ định sẵn.
Trong ví dụ này, server của chúng ta có 1G RAM, do đó Vietnix sẽ tạo bộ nhớ swap có kích thước là 1G. Bạn có thể tùy chỉnh con số này sao cho phù hợp với nhu cầu của mình:
sudo fallocate -l 1G /swapfile
Xác thực xem hệ thống đã để dành đúng 1G bộ nhớ hay chưa:
ls -lh /swapfile
-rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile
Khi sử dụng VPS và muốn tăng cường hiệu suất, ổn định hệ thống của mình, bạn có thể thêm swap space. Để sở hữu VPS chất lượng, bạn có thể tham khảo tại Vietnix.
Vietnix cung cấp các gói VPS đa dạng để đáp ứng nhu cầu của mọi người, bao gồm VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp và VPS NVMe. Bạn có toàn quyền quản lý VPS của mình và thực hiện các thay đổi như thêm swap space trên Ubuntu 20.04 một cách dễ dàng.
Việc thêm swap space sẽ giúp bạn tăng khả năng lưu trữ dữ liệu tạm thời khi bộ nhớ RAM đã đầy, giúp hệ thống hoạt động mượt mà hơn và tránh các sự cố quá tải.
Liên hệ ngay với Vietnix để lựa chọn gói VPS phù hợp với nhu cầu của bạn.
Bước 4 – Enable file swap
Sau khi có được file swap ở bước trên, ta có thể bắt đầu chuyển nó thành bộ nhớ swap theo hướng dẫn dưới đây.
Trước tiên, hãy khóa các quyền truy cập của file sao cho chỉ những user có quyền root mới có thể đọc file. Việc này giúp ngăn không cho những user không thường truy cập file, từ đó hạn chế rủi ro bảo mật cho hệ thống.
Cho phép root truy cập file bằng lệnh sau:
sudo chmod 600 /swapfile
Xác thực thay đổi:
ls -lh /swapfile
Output
-rw------- 1 root root 1.0G Apr 25 11:14 /swapfile
Theo kết quả thấy được, chỉ có root user mới có quyền đọc và ghi với file này
Tiếp theo, đánh dấu file làm dung lượng swap bằng lệnh:
sudo mkswap /swapfile
Output
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf
Sau khi tạo file, người dùng bắt đầu mở swap file, cho phép hệ thống dùng tính năng này
sudo swapon /swapfile
Sau đó xác thực xem swap đã khả dụng chưa:
sudo swapon –show
Output
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -2
Bên cạnh đó bạn cũng có thể kiểm tra lại output của công cụ free
để xác nhận:
free -h
Output
total used free shared buff/cache available
Mem: 981Mi 123Mi 644Mi 0.0Ki 213Mi 714Mi
Swap: 1.0Gi 0B 1.0Gi
Bước 5 – Đặt file swap thành vĩnh viễn
Bước 4 chỉ thực hiện enable file swap trong phiên hiện tại. Do đó sau khi reboot thì server sẽ không còn giữ thiết lập swap này nữa. Bạn có thể thêm file swap này vào file /etc/fstab
để đặt hiệu lực thành vĩnh viễn.
Trước tiên, hãy backup file /etc/fstab
để đề phòng trường hợp có lỗi xảy ra trong quá trình thực hiện:
sudo cp /etc/fstab /etc/fstab.bak
Sau đó thêm thông tin file swap vào cuối file /etc/fstab
:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Bước 6 – Chỉnh sửa cài đặt swap
Ở bước cuối cùng, ta sẽ chỉnh sửa một số cấu hình để cải thiện hiệu năng của hệ thống khi sử dụng bộ nhớ swap.
Thay đổi mức độ swap
Tham số swappiness
cấu hình tần suất hệ thống swap dữ liệu từ RAM vào bộ nhớ swap. Tham số này có giá trị từ 0 đến 100 (phần trăm). Nếu giá trị gần 0 thì kernel sẽ hầu như không swap dữ liệu trừ trường hợp đặc biệt cần thiết. Cần lưu ý rằng việc swap tốn rất nhiều chi phí tài nguyên của hệ thống, từ đó có thể ảnh hưởng đến hiệu năng. Nếu không phụ thuộc quá nhiều vào việc swap thì hệ thống thường sẽ có hiệu suất tốt hơn.
Ngược lại, giá trị của tham số càng gần 100 thì hệ thống sẽ càng swap nhiều hơn để có nhiều dung lượng trống cho RAM. Việc này đôi khi có thể có lợi, tùy vào profile bộ nhớ của ứng dụng và nhu cầu sử dụng server.
Mức độ swap hiện tại có thể được xem bằng lệnh sau:
cat /proc/sys/vm/swappiness
Đối với desktop thì giá trị này thường nằm ở mức 60, còn server thì nên đặt về gần 0 để tối ưu hiệu suất.
Mức độ swap có thể được thay đổi bằng lệnh sysctl
. Giả sử bạn cần đổi thành 10 thì có thể dùng lệnh sau:
sudo sysctl vm.swappiness=10
Output
vm.swappiness = 10
Thiết lập này sẽ có hiệu lực cho đến lần reboot tiếp theo. Bạn cũng có thể đặt giá trị này tự động điều chỉnh mỗi khi restart bằng cách thêm dòng sau vào file /etc/sysctl.conf
:
vm.swappiness=10
Thay đổi thiết lập cache
Một giá trị quan trọng khác là vfs_cache_presssure
, cấu hình số lượng mà hệ thống sẽ chọn để lưu trữ thông tin inode và dentry trên các dữ liệu khác.
Về cơ bản thì đây là việc truy cập dữ liệu liên quan đến filesystem. Thao tác này mất rất nhiều chi phí tính toán và tìm kiếm, đồng thời cũng được yêu cầu thường xuyên khi sử dụng. Do đó đây là một lựa chọn hợp lý để hệ thống đưa vào cache.
Bạn có thể xem giá trị hiện tại của tham số này bằng cách truy vấn filesystem proc
:
cat /proc/sys/vm/vfs_cache_pressure
Output
100
Theo như output thì hệ thống hiện tại sẽ xóa các thông tin inode từ cache rất nhanh. Bạn có thể đặt giá trị này thành các số nhỏ hơn như 50:
sudo sysctl vm.vfs_cache_pressure=50
Output
vm.vfs_cache_pressure = 50
Tương tự như ở trên, ta cũng đặt giá trị này sao cho vẫn có hiệu lực sau mỗi lần restart bằng cách thêm dòng dưới đây vào file etc/syscyl.conf
:
vm.vfs_cache_pressure=50
Vietnix là nhà cung cấp dịch vụ hosting, VPS tốc độ cao chuyên nghiệp hàng đầu tại Việt Nam với công nghệ chống tấn công DDoS độc quyền.
Với phương châm lấy sự thành công của khách hàng làm mục tiêu để phục vụ, Vietnix không ngừng phát triển hạ tầng để đảm bảo tốc độ cao và sự ổn định cho tất cả các sản phẩm. Đồng thời, nâng cao chất lượng hỗ trợ nhằm mang đến sự hài lòng cho khách hàng.
Những thế mạnh của Vietnix phải kể đến đó là:
- Hơn 11 năm kinh nghiệm cung cấp hosting, VPS.
- Đồng hành cùng hơn 50.000 khách hàng.
- Hơn 100.000 dịch vụ đã được kích hoạt.
- 97% khách hàng đánh giá 5 sao.
- 89% khách hàng duy trì sử dụng dịch vụ đến thời điểm hiện tại.
- Đạt giải thưởng Thương hiệu Việt Nam xuất sắc 2022.
Thông tin liên hệ:
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
Lời kết
Bài viết này đã hướng dẫn cách thiết lập bộ nhớ swap cho hệ thống, giúp giảm đáng kể lỗi hết bộ nhớ trên server. Nếu có bất kỳ thắc mắc nào khác, hãy để lại ở phần bình luận bên dưới để được Vietnix hỗ trợ nhanh nhất.