Hướng dẫn thêm bộ nhớ Swap trên Ubuntu/CentOS Linux


Việc tạo bộ nhớ tạm Swap là cần thiết, để tránh cho ứng dụng bị tràn bộ nhớ (Out of memory), cũng như giảm chi phí đầu tư cho bộ nhớ RAM cho máy tính. Bài viết này sẽ hướng dẫn thêm bộ nhớ Swap trên HDH Linux/Unix sử dụng swap file.

Vì sao cần Swap trên Linux?

Một số lý do sau đây nên việc đầu tiên sau khi nhận setup xong hệ điều hành là mình thực hiện công việc thêm swap.

  1. Giảm chi phí đầu tư bộ nhớ RAM: Không phải lúc nào bạn cũng sử dụng hết RAM của mình. Một ứng dụng có thể chỉ sử dụng quá memory ở 1 thời điểm, thay vì đầu tư cho RAM chúng ta tận dụng bộ nhớ tạm Swap để cung cấp cho chúng hoạt động khi chúng bị tràn bộ nhớ. Về nguyên tắc HDH sẽ sử dụng bộ nhớ RAM -> Swap.
  2. Do yêu cầu của phần mềm: Một số phần mềm như Oracle chẳng hạn, trong quá trình cài đặt Oracle sẽ yêu cầu phải có bộ nhớ Swap.

Hướng dẫn tạo swap trên Linux

Các bước tạo swap trên các HDH Linux (Ubuntu/CentOS/Debian/Redhat) là giống nhau. Để thực hiên các cần sử dụng câu lệnh swap với tài khoản root hoặc user có quyền sudo.

Kiểm tra bộ nhớ swap hiện tại của hệ thống

để kiểm tra có thể sử dụng 2 command sau:

[admin@vinasupport.com ~]$ swapon -s
[admin@vinasupport.com ~]$ free -m

Như bạn đã thấy, swap hiện tại đang là 0.

Tạo swap file

Cần tạo 1 swap file thì cách dễ dàng và nhanh nhất là sử dụng command: fallocate

[admin@vinasupport.com ~]$ sudo fallocate -l 4G /swapfile

Trường hợp sử dụng fallocate bị lỗi như sau khi chạy lệnh swapon “swapon: /swapfile: swapon failed: Invalid argument” thì tạo swap file với command: dd

[admin@vinasupport.com ~]$ sudo dd if=/dev/zero of=/swapfile count=2048 bs=1MiB

Phân quyền cho nó, chỉ được phép đọc bởi root user

[admin@vinasupport.com ~]$ sudo chmod 600 /swapfile

Tạo swap từ swap file

[admin@vinasupport.com ~]$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=26b9481b-e2f4-4c14-8fd3-f45c6babb8e1

Kích hoạt swap

[admin@vinasupport.com ~]$ sudo swapon /swapfile

Kiểm tra lại thông tin swap bằng 2 command “swapon -s” và “free -m” như ở đầu bài viết.

Như vậy bộ nhớ swap đã được thêm 2GB Memory

Thiết lập swap khởi động cùng HDH

Nếu khởi động lại HDH, bộ nhớ swap sẽ mất đi. Vì vậy, để kích hoạt swap vĩnh viễn kể cả khi reboot lại OS chúng ta thực hiện bước sau:

Sửa file /etc/fstab, và thêm dòng sau:

/swapfile   swap    swap    sw  0   0

Tùy chỉnh hệ thống sử dụng swap hiệu quả

Sửa file /etc/sysctl.conf và thêm 2 dòng sau:

vm.swappiness = 10
vm.vfs_cache_pressure = 50

Sau đó khởi động lại HDH.

Tham số swappiness chỉ ra thời điểm chuyển đổi từ bộ nhớ vật lý RAM sang bộ nhớ tạm Swap. Nó có giá trị từ 0 -> 100, mặc định là 30.

  • Nếu swappiness=0 thì sẽ không sử dụng swap
  • Nếu swappiness=100 thì sẽ sử dụng nhiều swap và giữ bộ nhớ memory free nhất có thể.
  • Nếu swappiness=10 thì sẽ không sử dụng swap, nếu bộ nhớ memory chỉ còn 10%

Để kiểm tra swappiness sử dụng command sau:

[admin@vinasupport.com ~]$ cat /proc/sys/vm/swappiness

Tham số vfs_cache_pressure ảnh hưởng đến việc lưu trữ các mục siêu dữ liệu của hệ thống tệp đặc biệt ( filesystem metadata ). Thường xuyên đọc và làm mới thông tin này thường rất tốn kém, vì vậy lưu trữ nó trên bộ đệm lâu hơn là điều tuyệt vời cho hiệu năng hệ thống của bạn. Giá trị mặc định của tham số này là 100, tức là nó sẽ bị xóa rất nhanh. Vì vậy để 50 để lưu trữ nó lâu hơn.

Để kiểm tra vfs_cache_pressure sử dụng command sau:

[admin@vinasupport.com ~]$ cat /proc/sys/vm/vfs_cache_pressure

Bài viết này hướng dẫn bạn tạo bộ nhớ swap từ swap file, nhưng còn 1 cách nữa là tạo từ phân vùng ổ đĩa (Disk Partition). Các bạn có thể tham khảo ở đây.

Nguồn: vinasupport.com

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web