Cấu hình tập tin Swap trên CentOS

Swap là 1 vùng lưu trữ trên đĩa cứng, nơi mà hệ điều hành sẽ tạm thời lưu trữ dữ liệu mà nó không thể giữ trong bộ nhớ chính (RAM). Swap có thể tồn tại trong hệ thống của chúng ta ở dạng 1 phân vùng đĩa cứng hay 1 tập tin.

Trong bài viết này chúng ta sẽ tìm hiểu cách tạo và cấu hình tập tin swap trên CentOS.

1. Kiểm tra thông tin Swap của hệ thống

Để kiểm tra các cấu hình swap trong hệ thống, chúng ta sử dụng tiện ích swapon như sau:

# swapon -s

Nếu danh sách trả về là rỗng thì tức là hệ thống của chúng ta chưa được cấu hình swap.

1 cách khác để kiểm tra không gian swap là sử dụng tiện ích free như sau:

# free -m
             total used free shared buffers cached 
Mem:         3953  315  3637 8      11      107 
-/+ buffers/cache: 196  3756
Swap:        0     0    4095

Chúng ta có thể thấy rằng không gian swap là 0. Điều này trùng khớp với những gì chúng ta đã thấy trong swapon.

2. Tạo tập tin swap

Thường không gian swap sẽ có dung lượng bằng 2 lần dung lượng bộ nhớ chính. Trong trường hợp này, giả sử bộ nhớ RAM của chúng ta là 2 GB, vậy chúng ta sẽ tiến hành tạo swap có dung lượng là 4GB.

fallocate -l 4G /swapfile

Lệnh fallocate ở trên sẽ tạo ra 1 tập tin có kích thước định sẵn là 4 GB, chúng ta sẽ tạo ra 1 tập tin có tên là swapfile nằm tại thư mục root (/). Các bạn có thể chọn tên và vị trí lưu trữ khác cho tập tin swap của các bạn nếu muốn.

# chmod 600 /swapfile

3. Kích hoạt tập tin swap

Sử dụng lệnh sau để thiết lập không gian swap trong hệ thống của chúng ta:

# mkswap /swapfile
Setting up swapspace version 1, size = 4194300 KiB no label, UUID=b99230bb-21af-47bc-8c37-de41129c39bf

Giờ thì tập tin swap của chúng ta đã sẵn sàng để sử dụng như không gian swap. Chúng ta bắt đầu sử dụng nó bằng lệnh:

# swapon /swapfile

Để kiểm tra tiến trình đã thành công, sử dụng lệnh sau:

# swapon -s
Filename   Type   Size     Used Priority 
/swapfile  file   4194300  0    -1

hoặc

# free -m
                          total     used    free     shared    buffers    cached 
Mem:               3953    315      3637   8              11             107 
-/+ buffers/cache:     196      3756 
Swap:              4095    0          4095

Không gian swap của chúng ta đã được thiết lập thành công, và hệ điều hành sẽ bắt đầu sử dụng nó khi cần.

4. Làm cho tập tin swap tồn tại thường trực

Tập tin swap mà chúng ta đã tạo ở trên chỉ có tác dụng tạm thời, tức là khi hệ thống khởi động lại, máy chủ sẽ không tự động kích hoạt và sử dụng tập tin đó.

Để hệ thống tự động sử dụng tập tin trên mỗi lần khởi động lại, chúng ta tiến hành cấu hình tập tin /etc/fstab như sau:

# vi /etc/fstab
/swapfile swap swap sw 0 0

Lưu và đóng tập tin lại. Như vậy là mỗi khi máy chủ khởi động lại, tập tin swap của chúng ta sẽ sẵn sàng để sử dụng.

5. swappiness và cache pressure

5.1 swappiness

Tham số swappiness xác định độ thường xuyên mà hệ thống sẽ sử dụng không gian swap. Tham số này có giá trị từ 0 đến 100.

  • Với giá trị gần với 0, hệ thống sẽ không chuyển đổi dữ liệu vào swap trừ khi thực sự cần thiết. Nên nhớ rằng tốc độ đọc, ghi dữ liệu trên không gian swap sẽ chậm hơn nhiều so với dữ liệu bên trong bộ nhớ RAM của chúng ta.
  • Giá trị càng gần với 100 thì hệ thống sẽ chuyển đổi nhiều dữ liệu hơn vào không gian swap nhằm giải phóng bộ nhớ chính.

Chúng ta có thể xem giá trị swappiness hiện tại bằng cách:

# cat /proc/sys/vm/swappiness
60

Để thiết lập giá trị cho swappiness, chúng ta cấu hình tập tin /etc/sysctl.conf như sau:

# vi /etc/sysctl.conf
vm.swappiness = 10
# sysctl -p

Máy chủ sẽ tự động  thiết lập giá trị swappiness thành giá trị mà chúng ta đã khai báo mỗi lần khởi động lại.

5.2 Cache Pressure

1 giá trị khác chúng ta có thể cần quan tâm là vfs_cache_pressure. Giá trị này ảnh hưởng đến việc lưu trữ các chỉ mục siêu dữ liệu đặc biệt của hệ thống tập tin. Việc đọc và làm mới thông tin này rất tốn tài nguyên, vì vậy việc lưu trữ nó trên bộ nhớ cache lâu hơn sẽ cải thiện được hiệu năng của hệ thống.

Giá trị này càng lớn thì thời gian mà hệ thống chúng ta lưu giữ các thông tin trên trong bộ nhớ cache càng ngắn và ngược lại.

Để xem giá trị hiện tại của cache pressure, thực hiện như sau:

# cat /proc/sys/vm/vfs_cache_pressure
100

Để thiết lập giá trị này, chúng ta cấu hình tập tin /etc/sysctl.conf như sau:

# vi /etc/sysctl.conf
vm.vfs_cache_pressure = 50
# sysctl -p 

Như vậy là chúng ta đã hoàn thành xong việc tạo và cấu hình tập tin swap trên CentOS. Chúc các bạn thành công!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.