Các hệ điều hành sẽ cần có một lượng RAM có sẵn để giúp chạy các ứng dụng. Tuy nhiên, dung lượng RAM sẽ có giới hạn, đó là lý do tại sao người ta không thiết kế RAM để chứa dữ liệu lớn. Do đó, cần có một công nghệ hỗ trợ RAM khi nó hết bộ nhớ.
Khái niệm này phù hợp với hệ điều hành Windows cũng như Linux. Trong hệ điều hành Windows, bất cứ khi nào RAM không đủ dung lượng bộ nhớ để chạy một chương trình thì nó sẽ mượn một lượng bộ nhớ từ bộ nhớ thứ cấp. Bộ nhớ mượn này được gọi là bộ nhớ ảo (Virtual Memory).
Tương tự trên Linux, bất cứ khi nào RAM hết thì nó sẽ mượn một số bộ nhớ từ bộ nhớ thứ cấp để lưu trữ nội dung không hoạt động. Bằng cách này, RAM tìm đủ không gian để chứa một tiến trình mới bên trong nó. Không gian mượn từ đĩa cứng được gọi là bộ nhớ hoán đổi (Swap Memory).
Và trong bài viết này, chúng ta sẽ cố gắng tìm hiểu khái niệm về Swap Memory một cách chi tiết.
1. Swap Memory là gì?
Swap Memory là dung lượng ổ cứng chuyên dụng được sử dụng khi RAM hết bộ nhớ. Có một chương trình quản lý bộ nhớ trong Linux đảm nhiệm quá trình này. Bất cứ khi nào RAM thiếu bộ nhớ, chương trình quản lý bộ nhớ sẽ tìm kiếm tất cả các khối dữ liệu không hoạt động có trong RAM đã lâu không được sử dụng.
Khi tìm thấy nó sẽ chuyển chúng vào Swap Memory. Bằng cách này, dung lượng RAM được giải phóng và do đó nó có thể được sử dụng cho một số chương trình khác.
Ngoài cái tên Swap Memory thì chúng ta hay gọi nó là Swap Ram.
2. Có những loại Swap Memory nào?
Chúng ta có hai loại swap memory như sau:
- Swap Partition: Đây là loại swap memory mặc định, là một phân vùng ổ cứng dành riêng cho việc hoán đổi.
- Swap File: Đây là swap memory tự tạo. Bất cứ khi nào không còn đủ dung lượng trống trong ổ cứng để tạo phân vùng swap thì file swap sẽ được tạo theo cách thủ công để hoán đổi nội dung không hoạt động của RAM vào đó.
3. Lợi ích của việc sử dụng Swap Memory là gì?
Thông qua khái niệm mà chúng ta đã học ở phần 1 thì sẽ rút ra được một số lợi ích khi sử dụng Swap Memory như sau:
- Tiết kiệm được những khối RAM không hoạt động mà hoặc chỉ sử dụng một hoặc hai lần và sau đó chúng không bao giờ được sử dụng nữa. Bộ nhớ RAM được giải phóng sau đó có thể được sử dụng để chạy những chương trình có mức độ ưu tiên cao hơn.
- Ngăn không cho RAM hết dung lượng.
- Hoạt động như một bản sao lưu để tăng cường không gian thực của RAM.
- Cho phép bạn chạy các ứng dụng nặng cần nhiều RAM.
- Trong quá trình ngủ đông, tất cả nội dung của RAM được ghi trên swap memory. Do đó, về cơ bản nó là cần thiết để quá trình ngủ đông diễn ra thành công.
- Giúp nâng cao hiệu suất tổng thể của hệ thống của bạn.
4. Hướng dẫn tạo Swap trên Linux
Như khái niệm của nó, chúng ta sẽ tạo một khoảng trống trên ổ đĩa để trong trường hợp bộ nhớ RAM đầy thì hệ thống Linux sẽ sử dụng Swap để thay thế.
Chúng ta cũng có hai loại Swap, thứ nhất là Swap Partition và thứ hai là Swap File. Thông thường thì chúng ta sẽ sử dụng loại thứ hai (Swap File) vì rất tiện trong việc cấu hình.
Sau đây là các bước cơ bản nhất để tạo ram ảo trên hệ điều hành Linux.
Bước 1: Cài đặt phần mềm PuTTY để login vào VPS. Trường hợp bạn đang sử dụng VPS thì có thể tham khảo một trong hai bài sau:
Hãy đăng nhập bằng tài khoản Root để sử dụng được mọi quyền trong quá trình thực hiện cài đặt Swapfile nhé.
Bước 2: Kiểm tra xem đã cài đặt Swap chưa?
Hãy kiểm tra xem bạn đã cài đặt swap chưa nhé, nếu chưa thì tiến hành cài đặt, còn nếu rồi thì không cần phải tạo nữa.
Chạy lệnh sau để kiểm tra:
1 | swapon --show |
Nếu kết quả trả về không có gì thì tức là VPS của bạn chưa tạo Swap. Bây giờ bạn hãy tiếp tục qua bước thứu 3.
Bước 3: Thực hiện tạo file Swapfile.
Thông thường chúng ta sẽ tạo dung lượng cho swap gấp đôi so với dung lượng của ram thật. Ví dụ VPS của mình là RAM 1GB thì mình sẽ tạo swap file là 2GB.
Hãy chạy lệnh sau để tạo Swapfile.
1 | dd if=/dev/zero of=/swapfile bs=1024 count=2048k |
Nếu bạn muốn tạo file Swap chỉ 1GB thì hãy đổi con số 2048k thành 1024k nhé.
Bước 4: Phân quyền cho file swap.
Bạn nên phân quyền cho file này vì đây là một file khá quan trọng, chỉ tài khoản root mới đủ quyền đọc và chỉnh sửa thông tin bên trong đó.
Hãy chạy lần lượt hai lệnh dưới đây để phân quyền nhé.
1 2 | chown root:root /swapfile chmod 600 /swapfile |
Bước 5: Kích hoạt Swap. Thao tác này cần thực hiện hay lần như sau:
Tạo phân vùng cho swap bằng lệnh sau.
1 | mkswap /swapfile |
Kích hoạt swap bằng lệnh sau.
1 | swapon /swapfile |
Bước 6: Mỗi khi khởi động lại hệ thống thì bạn sẽ phải chạy lệnh kích hoạt swap, điều này rất bất tiện, vì vậy ta cần thiết lập kích hoạt tự động mỗi khi khởi động lại hệ thống.
Để phân vùng của swal không bị mất mỗi khi khởi động lại thì bạn hãy chạy lệnh sau:
1 | echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab |
Vậy là xong. Bạn có thể test bằng cách khởi động lại hệ thống, sau đó chạy lệnh sau:
1 | free -h |
Nếu có kết quả trả về là bạn đã thành công.
Bước 7: Điều chỉnh giá trị Swappiness
Swappiness là giá trị tần suất mà hệ thống sẽ sử dụng swap, giá trị nằm trong khoảng từ 0 - 100, tương ứng với (0% - 100%), và tùy vào phiên bản Linux mà bạn đang sử dụng sẽ giá giá trị mặc định khác nhau.
Ví dụ với CentOS 7 thì giá trị mặc định là 30, tức là khi Ram thật chỉ còn 30% thì Swap Memory sẽ được hoạt động. Bạn hãy chạy lệnh sau để xem giá trị mặc định của bạn là bao nhiêu nhé.
1 | cat /proc/sys/vm/swappiness |
Vì dung lượng ram của mình thấp nên mình sẽ điều chỉnh nó xuống thành 10, tức khi Ram còn trống 10% thì quá trình Swap sẽ kích hoạt. Chạy lệnh dưới đây để thực hiện.
1 | sysctl vm.swappiness=10 |
Tương tự, để tham số này không bị thay đổi mỗi khi khởi động lại hệ thống thì bạn cần chỉnh nó trong file /etc/sysctl.conf
.
Hãy mở file này lên bằng Vim Editor hoặc Nano Editor nhé. Mình sẽ sử dụng nano nhé.
1 | nano /etc/sysctl.conf |
Thêm dòng sau vào cuối file, hoặc một hàng trống nào đó.
1 | vm.swappiness=10 |
Tiếp theo hãy mở file tuned.conf
nằm trong /usr/lib/tuned/virtual-guest/tuned.conf
, tìm dòng vm.swappiness
và sửa giá trị thành 10.
Vậy là bạn đã thực hiện tạo Swap file thành công rồi đấy. Bây giờ mình sẽ giới thiệu thêm một số lệnh quản lý Swap thông dụng khác nhé.
5. Cách xóa Swap trên Linux
Cái gì cũng vậy, lúc xây dựng thì mất rất nhiều thời gian, nhưng lúc đập bỏ đi thì chỉ cần một vài thao tác là được.
Để xóa Swap trên Linux thì bạn chỉ việc chạy lệnh dưới đây.
Đầu tiên hãy chạy lệnh sau để hủy kích hoạt Swap.
1 | swapoff -v /swapfile |
Tiếp theo mở file /etc/fstab và xoá dòng dưới đây.
1 | /swapfile none swap sw 0 0 |
Và cuối cùng, hãy xóa file swapfile khỏi hệ thống.
1 | rm /swapfile |
Vậy là xong!
Như vậy là mình đã hướng dẫn xong cách tạo Swap trên Linux. Hy vọng qua bài này sẽ giúp bạn hiểu được khái niệm Swap Ram là gì, chúc bạn thực hiện thành công!