Swap Ram là gì? Hướng dẫn tạo Ram ảo trên Linux

Trong bài này mình sẽ giới thiệu Swap RAM (hay còn gọi là RAM ảo), một khái niệm khá quen thuộc khi mua VPS mà ai cũng thắc mắc.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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).

Bài viết này được đăng tại [free tuts .net]

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:

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.

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é.

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.

mkswap /swapfile

Kích hoạt swap bằng lệnh sau.

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:

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:

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é.

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.

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é.

nano /etc/sysctl.conf

Thêm dòng sau vào cuối file, hoặc một hàng trống nào đó.

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.

swapoff -v /swapfile

Tiếp theo mở file /etc/fstab và xoá dòng dưới đây.

/swapfile none swap sw 0 0

Và cuối cùng, hãy xóa file swapfile khỏi hệ thống.

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!

Cùng chuyên mục:

Hướng dẫn cấu hình Mail Server trên CentOs 6.5

Hướng dẫn cấu hình Mail Server trên CentOs 6.5

Cách dùng lệnh Users trong Linux để xem user đang online

Cách dùng lệnh Users trong Linux để xem user đang online

Nếu bạn đang là quản trị viên thì việc quản lý thông tin / xem…

Cách sử dụng lệnh Wall trong Linux

Cách sử dụng lệnh Wall trong Linux

Wall là một công cụ dòng lệnh giúp hiển thị thông báo đến tất cả…

Cách dùng lệnh Whereis trong Linux

Cách dùng lệnh Whereis trong Linux

Whereis là một tiện ích dòng lệnh command line, nó cho phép bạn tìm ..

Cách sử dụng lệnh Which trong Linux

Cách sử dụng lệnh Which trong Linux

Linux dùng lệnh which để xác định vị trí file thực thi của lệnh mà…

Cách sử dụng lệnh whoami trong Linux

Cách sử dụng lệnh whoami trong Linux

Giống như tên gọi của nó, lệnh whoami in tên người dùng đang chạy ...

Cách dùng lệnh zcat trong Linux

Cách dùng lệnh zcat trong Linux

Mặc dù tính năng nén file rất hữu ích vì nó giúp ta tiết kiệm…

Hiểu rõ hơn về chmod 777 trong Linux

Hiểu rõ hơn về chmod 777 trong Linux

Bạn đang xây dựng một website và sử dụng tính năng upload ...

Cách sử dụng lệnh tail trong Linux

Cách sử dụng lệnh tail trong Linux

Mặc định thì lệnh tail sẽ hiển thị 10 dòng cuối cùng của file, thông…

Cách sử dụng lệnh Head trong Linux

Cách sử dụng lệnh Head trong Linux

Trong quá trình quản trị dữ liệu trên Linux đôi khi bạn muốn xem nhanh…

Cách sử dụng lệnh Whatis trong Linux

Cách sử dụng lệnh Whatis trong Linux

Trong bài này chúng ta sẽ tìm hiểu lệnh whatis trong ...

Cách sử dụng lệnh kill trong Linux

Cách sử dụng lệnh kill trong Linux

Linux là một hệ điều hành rất nhanh nhưng không phải lúc nào nó không…

Cách dùng lệnh who trong Linux

Cách dùng lệnh who trong Linux

Who là một công cụ dòng lệnh command-line, được ...

Cách dùng lệnh basename trong Linux

Cách dùng lệnh basename trong Linux

basename là một tiện ích dòng lệnh (command line) dùng để lấy ...

Cách sử dụng lệnh gzip trên Linux

Cách sử dụng lệnh gzip trên Linux

Gzip là một trong những thuật toán nén file phổ biến nhất, nó cho phép…

Cách dùng lệnh wait trong Linux

Cách dùng lệnh wait trong Linux

Wait là lệnh dùng để đợi một thời gian cho tới khi công việc nào…

Cách dùng lệnh ping trong Linux

Cách dùng lệnh ping trong Linux

Lệnh ping là một trong những công cụ được sử dụng nhiều nhất để khắc…

Cách dùng lệnh sleep trong Linux

Cách dùng lệnh sleep trong Linux

sleep là một tiện ích command line cho phép lập trình viên ..

Các ví dụ học Bash Script trong Linux cơ bản nhất

Các ví dụ học Bash Script trong Linux cơ bản nhất

Bash Script đuọc xem là mã code lập trình trên Linux ...

Vòng lặp until trong Shell Script

Vòng lặp until trong Shell Script

Top