Hướng dẫn tạo Swap VPS

Swap nếu theo nghĩa đen là Hoán Đổi nhưng chúng ta hiểu là dùng ổ cứng làm RAM. Một khi máy tính/VPS/Server hoạt dộng mà dung lượng RAM không còn(hoặc sắp hết tùy vào cài đặt người quản trị) sẽ biến ổ cứng thành RAM.

Ví dụ khi bạn sử dụng VPS làm hosting mà bị lỗi Establishing a Database Connection đó có thể là do RAM  của bạn đã sử dụng hết.

Tuy nhiên mục đích chính không phải dùng swap thay thế RAM mà mục đích chính của chúng ta đó chính là làm cho VPS hoạt động ổn định. Với các VPS dùng công nghệ ảo hóa OpenVZ, có thể bạn sẽ không tạo được swap do hệ thống đã tự động kích hoạt sẵn.

Bạn có thể kham khảo thêm về SWAP tại đây

I. Hướng dẫn tạo Swap trên VPS Centos/Ubuntu

Để đơn giản trong việc thiết lập trên VPS mình khuyên các bạn sử dụng phần mềm Bitvise SSH Client

1. Bạn cần kiểm tra là đã có Swap chưa?

Bạn thực hiện dòng lệnh sau để kiểm tra:

swapon -s
kiểm tra swap
kiểm tra swap

Nếu kết quả như hình trên nghĩa là bạn chưa có swap trên hệ thống.

2. Kiểm tra dung lượng ổ đĩa để cài swap

Bạn sử dụng lệnh sau để kiểm tra dụng lượng trống trên VPS

df -h
Kiểm tra dụng lượng VPS
Kiểm tra dụng lượng VPS

II. Các bước tạo Swap

Các bạn chạy lệnh sau để thực hiện tạo Swap.

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k

Bạn chỉ cần để ý thông số “count=1024k“. 1024k là 1GB swap, 2048k là 2GB….

Tạo swap
Tạo swap

Tạo phân vùng swap

mkswap /swapfile
Tạo phân vùng swap
Tạo phân vùng swap

Kích hoạt Swap

swapon /swapfile
Kích hoạt swap
Kích hoạt swap

Tới bước này sẽ hiện thông báo “warning insecure permissions 0644″ nhưng không sao các bạn cứ bỏ qua.

Tới bước này bạn đã cài xong Swap cho Linux để kiểm tra lại bạn thực hiện lệnh sau:

swapon -s
Kiểm tra swap
Kiểm tra swap

Tuy nhiên Swap sẽ không tự kích hoạt mỗi khi khởi dộng lại. Do đó mình cần thực hiện thêm 1 bước nữa

echo /swapfile none swap defaults 0 0 >> /etc/fstab

Để bảo mật tối ưu cho Swap các bạn cần chạy thêm lệnh sau:

chown root:root /swapfile 
chmod 0600 /swapfile
Bảo mật swap
Bảo mật swap

III. Cấu hình Swappiness trên Linux

Swappiness được hiểu đơn giản là thiết lập khi nào thì Swap được sử dụng. Có giá trị trong khoảng [0-100] (%). Để dễ hiểu các bạn xem ví dụ sau:

  • swappiness = 0: swap chỉ được dùng khi RAM được sử dụng hết.
  • swappiness = 10: swap được sử dụng khi RAM còn 10%.
  • swappiness = 60: swap được sử dụng khi RAM còn 60%.
  • swappiness = 100: swap được ưu tiên như là RAM.

Để kiểm tra Swappiness đang sử dụng là bao nhiêu các bạn thực hiện lệnh sau:

cat /proc/sys/vm/swappiness

Để thiết lập giá trị Swappiness các bạn thực hiện lệnh sau:

sysctl vm.swappiness=20
cấu hình swappiness
cấu hình swappiness

Tuy nhiên các bạn nên để giá trị càng nhỏ càng tốt vì tốc độ Ổ cứng thấp hơn rất nhiều so với RAM

CHÚ Ý: Mỗi lần khởi động lại giá trị này sẽ bị thay đổi vì vậy bạn cần chỉnh lại file “/etc/sysctl.conf”

Để mở file này bạn thực hiện lệnh sau

nano /etc/sysctl.conf

Thêm dòng lệnh vm.swappiness = 10 vào file vừa mở

cấu hình swappiness khởi dộng lạicấu hình swappiness khởi dộng lại
cấu hình swappiness khởi dộng lại

Sau đó bạn nhấn Ctrl + O -> Enter -> Ctrl + X 

Vậy là bạn đã thiết lập xong Swappiness

Lưu ý

Với CentOS 7.2 có thể tune profile sẽ overwrite vm.swappiness mỗi lần reboot, bạn cần kiểm tra profile nào đang overwrite để cấu hình lại thủ công.

grep vm.swappiness /usr/lib/tuned/*/tuned.conf
Output có thể như sau:
[fusion_syntax_highlighter theme="" language="x-sh" line_numbers="" line_wrapping="" copy_to_clipboard="" copy_to_clipboard_text="Copy to Clipboard" hide_on_mobile="small-visibility,medium-visibility,large-visibility" class="" id="" font_size="" border_size="" border_color="" border_style="" background_color="" line_number_background_color="" line_number_text_color="" margin_top="" margin_left="" margin_bottom="" margin_right=""]W2Z1c2lvbl9zeW50YXhfaGlnaGxpZ2h0ZXIgdGhlbWU9IiIgbGFuZ3VhZ2U9Ingtc2giIGxpbmVfbnVtYmVycz0iIiBsaW5lX3dyYXBwaW5nPSIiIGNvcHlfdG9fY2xpcGJvYXJkPSIiIGNvcHlfdG9fY2xpcGJvYXJkX3RleHQ9IkNvcHkgdG8gQ2xpcGJvYXJkIiBoaWRlX29uX21vYmlsZT0ic21hbGwtdmlzaWJpbGl0eSxtZWRpdW0tdmlzaWJpbGl0eSxsYXJnZS12aXNpYmlsaXR5IiBjbGFzcz0iIiBpZD0iIiBmb250X3NpemU9IiIgYm9yZGVyX3NpemU9IiIgYm9yZGVyX2NvbG9yPSIiIGJvcmRlcl9zdHlsZT0iIiBiYWNrZ3JvdW5kX2NvbG9yPSIiIGxpbmVfbnVtYmVyX2JhY2tncm91bmRfY29sb3I9IiIgbGluZV9udW1iZXJfdGV4dF9jb2xvcj0iIiBtYXJnaW5fdG9wPSIiIG1hcmdpbl9sZWZ0PSIiIG1hcmdpbl9ib3R0b209IiIgbWFyZ2luX3JpZ2h0PSIiXVcyWjFjMmx2Ymw5emVXNTBZWGhmYUdsbmFHeHBaMmgwWlhJZ2RHaGxiV1U5SWlJZ2JHRnVaM1ZoWjJVOUluZ3RjMmdpSUd4cGJtVmZiblZ0WW1WeWN6MGlJaUJzYVc1bFgzZHlZWEJ3YVc1blBTSWlJR052Y0hsZmRHOWZZMnhwY0dKdllYSmtQU0lpSUdOdmNIbGZkRzlmWTJ4cGNHSnZZWEprWDNSbGVIUTlJa052Y0hrZ2RHOGdRMnhwY0dKdllYSmtJaUJvYVdSbFgyOXVYMjF2WW1sc1pUMGljMjFoYkd3dGRtbHphV0pwYkdsMGVTeHRaV1JwZFcwdGRtbHphV0pwYkdsMGVTeHNZWEpuWlMxMmFYTnBZbWxzYVhSNUlpQmpiR0Z6Y3owaUlpQnBaRDBpSWlCbWIyNTBYM05wZW1VOUlpSWdZbTl5WkdWeVgzTnBlbVU5SWlJZ1ltOXlaR1Z5WDJOdmJHOXlQU0lpSUdKdmNtUmxjbDl6ZEhsc1pUMGlJaUJpWVdOclozSnZkVzVrWDJOdmJHOXlQU0lpSUd4cGJtVmZiblZ0WW1WeVgySmhZMnRuY205MWJtUmZZMjlzYjNJOUlpSWdiR2x1WlY5dWRXMWlaWEpmZEdWNGRGOWpiMnh2Y2owaUlpQnRZWEpuYVc1ZmRHOXdQU0lpSUcxaGNtZHBibDlzWldaMFBTSWlJRzFoY21kcGJsOWliM1IwYjIwOUlpSWdiV0Z5WjJsdVgzSnBaMmgwUFNJaVhWY3pTblppTTFKQldUSm9jRmxZVG14aE1teHNZbTVTYjJSWFRYVmliVll3U1VnMVpFbDVRbTVqYlZaM1NVaGFkRXh1VGpOWldFSjNZVmMxYkdNelRXZE1NMVo2WTJrNWMyRlhTWFprU0ZaMVdsZFJka3RwT1RCa1Z6VnNXa00xYW1JeU5XMURhVGt4WXpOSmRtSkhiR2xNTTFJeFltMVdhMHd5ZUdoa1IxWjFXVE5yZEdOSFZubGFiVGw1WWxkR2RWa3lWWFprU0ZaMVdsZFJkVmt5T1hWYWFuQXlZbE0xZW1ReVJuZGpSMngxV2xoT2VsQlVSWGREYVRreFl6TkpkbUpIYkdsTU0xSXhZbTFXYTB3elVtOWpiVGt4V2pKb2QyUllVWFJqUjFaNVdtMDVlV0pYUm5WWk1sVjJaRWhXZFZwWFVYVlpNamwxV21wd01tSlROWHBrTWtaM1kwZHNkVnBZVG5wUVZFVjNRMms1TVdNelNYWmlSMnhwVEROU01XSnRWbXRNTTFwd1kyNVNNVmxYZDNSYU0xWnNZek5SZG1SSVZuVmFWMUYxV1RJNWRWcHFjREppVXpWNlpESkdkMk5IYkhWYVdFNTZTVVF3WjAxNlFUMWJMMloxYzJsdmJsOXplVzUwWVhoZmFHbG5hR3hwWjJoMFpYSmRbL2Z1c2lvbl9zeW50YXhfaGlnaGxpZ2h0ZXJd[/fusion_syntax_highlighter]
Lúc này, bạn hãy mở file /usr/lib/tuned/virtual-guest/tuned.conf, tìm vm.swappiness và thay đổi vm.swappiness = 30 thành vm.swappiness = 10.
[fusion_syntax_highlighter theme="" language="x-sh" line_numbers="" line_wrapping="" copy_to_clipboard="" copy_to_clipboard_text="Copy to Clipboard" hide_on_mobile="small-visibility,medium-visibility,large-visibility" class="" id="" font_size="" border_size="" border_color="" border_style="" background_color="" line_number_background_color="" line_number_text_color="" margin_top="" margin_left="" margin_bottom="" margin_right=""]bmFub8KgL3Vzci9saWIvdHVuZWQvdmlydHVhbC1ndWVzdC90dW5lZC5jb25m[/fusion_syntax_highlighter]

Nhấn Ctrl + O để lưu, EnterCtrl + X để thoát.

Khởi động lại VPS và kiểm tra lại kết quả.

IV. Tăng bộ nhớ Swap trên Linux

Gỉai sử bạn vừa nâng cấp gói VPS hoặc nâng cấp phần cứng. Bạn muốn thêm bộ nhớ swap thì bạn chỉ cần:

Tắt Swap

swapoff /swapfile

Sau đó xóa Swap

rm -f /swapfile

Sau đó bạn chỉ cần tạo lại Swap như đầu bài viết.

Như vậy là các bạn đã tạo Swap trên Linux. Nếu có thắc mắc các bạn hãy để lại bình luận mình sẽ trả lời ngay khi có thể.