Hướng dẫn tạo và kích hoạt Swap-Học VPS https://hocvps.com/swap/ 1/28 30/04/2016 Luân Trần Basics 57,105 Views 297 Comments Tìm kiếm bài viết hướng dẫn trên Học VPS SEARCH Hướng dẫn tạo và kích hoạt Swap Học VPS / Basics / Hướng dẫn tạo và kích hoạt Swap CHIA SẺ BÀI VIẾT: Swap là khái niệm bộ nhớ ảo được sử dụng trên hệ điều hành Linux. Khi VPS/Server hoạt động, nếu hết RAM hệ thống sẽ tự động sử dụng một phần ổ cứng để làm bộ nhớ cho các ứng dụng hoạt động. Với những server không có swap, khi hết RAM hệ thống thường tự động stop service MySQL, do đó hay xuất hiện thông báo lỗi Establishing a Database Connection. Do sử dụng ổ cứng có tốc độ chậm hơn RAM, nhất là với những server dùng ổ cứng thường không dùng SSD, do đó không nên thường xuyên sử dụng Swap sẽ làm giảm hiệu năng hệ thống. Nếu tình trạng hết RAM hay xảy ra, bạn hãy tối ưu server, tăng cache và nâng cấp bổ sung thêm RAM. 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. Show Swap là khái niệm bộ nhớ ảo được sử dụng trên hệ điều hành Linux. Khi VPS/Server hoạt động, nếu hết RAM hệ thống sẽ tự động sử dụng một phần ổ cứng để làm bộ nhớ cho các ứng dụng hoạt động. Với những server không có swap, khi hết RAM hệ thống thường tự động stop service MySQL, do đó hay xuất hiện thông báo lỗi Establishing a Database Connection. Do sử dụng ổ cứng có tốc độ chậm hơn RAM, nhất là với những server dùng ổ cứng thường không dùng SSD, do đó không nên thường xuyên sử dụng Swap sẽ làm giảm hiệu năng hệ thống. Nếu tình trạng hết RAM hay xảy ra, bạn hãy tối ưu server, tăng cache và nâng cấp bổ sung thêm RAM. 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. Hướng dẫn tạo SwapÁp dụng được cả trên CentOS và Ubuntu. 1. Kiểm tra swapTrước khi tiến hành tạo file swap cần kiểm tra xem hiện tại hệ thống đã kích hoạt swap hay chưa bằng cách chạy: swapon -s Nếu không có thông tin gì hoặc trả về như hình dưới chứng tỏ server chưa có swap và bạn có thể tạo. 2. Kiểm tra dung lượng trốngSử dụng lệnh mkswap /swapfile 3 để kiểm tra dung lượng trống. Còn 13GB, vẫn thoải mái để tạo swap: 3. Tạo swap– Chạy lệnh dd. Ở đây mình tạo 1GB swap (count=1024k) cho VPS 768MB RAM sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k Lệnh trên sẽ tạo swap có dung lượng 1Gb. Bạn có thể thay count=1024k bằng count=2048k… để tạo swap dung lượng 2Gb. Dung lượng Swap tối đa chỉ nên gấp đôi RAM vật lý. – Tạo phân vùng swap mkswap /swapfile – Kích hoạt swap swapon /swapfile Đoạn này có thể gặp thông báo warning insecure permissions 0644, không sao cả bạn cứ bỏ qua. Chúng ta sẽ chỉnh lại ở bước sau. – Kiểm tra lại tình trạng swap bạn sẽ thấy như sau: swapon -s – Thiết lập swap tự động được kích hoạt mỗi khi reboot echo /swapfile none swap defaults 0 0 >> /etc/fstab – Bảo mật file swap bằng cách chmod chown root:root /swapfile chmod 0600 /swapfile 4. Cấu hình SwappinessSwappiness là mức độ ưu tiên sử dụng swap, khi lượng RAM còn lại bằng giá trị của swappiness (tính theo tỷ lệ phần trăm) thì swap sẽ được sử dụng. Swappiness có giá trị trong khoảng 0 – 100.
Do tốc độ xử lý dữ liệu trên RAM cao hơn nhiều so với Swap, do đó bạn nên đặt giá trị này về gần với 0 để tận dụng tối đa sức mạnh hệ thống. Tốt nhất nên chỉnh về 10. – Kiểm tra mức độ sử dụng file swap của hệ thống bằng cách chạy dòng lệnh sau cat /proc/sys/vm/swappiness – Chỉnh thông số swappiness bằng cách dùng lệnh mkswap /swapfile 4 sysctl vm.swappiness=10 – Kiểm tra lại bạn sẽ thấy kết quả trả về 10 cat /proc/sys/vm/swappiness Để đảm bảo giữ nguyên thông số này mỗi khi khởi động lại VPS bạn cần điều chỉnh tham số mkswap /swapfile 5 ở cuối file mkswap /swapfile 6 (nếu không có bạn hãy add thủ công vào) sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k 0 Thêm dòng sau vào cuối nếu chưa có, nếu có rồi thì update lại giá trị: sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k 1 Nhấn Ctrl + O để lưu, Enter và Ctrl + X để thoát. – Khởi động lại VPS và kiểm tra lại kết quả: sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k 2 Lưu ý – Với CentOS 7.2 có thể tune profile sẽ overwrite mkswap /swapfile 5 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. sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k 3 Output có thể như sau: sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k 4 Lúc này, bạn hãy mở file mkswap /swapfile 8, tìm mkswap /swapfile 5 và thay đổi swapon /swapfile 0 thành swapon /swapfile 1. sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k 5 Nhấn Ctrl + O để lưu, Enter và Ctrl + X để thoát. Khởi động lại VPS và kiểm tra lại kết quả. Thay đổi dung lượng swapNếu bạn đã theo các hướng dẫn trên để tạo swap file và muốn thay đổi dung lượng swap, hãy thực hiện ngược lại quá trình. – Tắt swap sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k 6 – Xóa file swap sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k 7 – Tạo mới file swap với dung lượng mong muốn. Ví dụ mình tạo 2GB (2048k) sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k 8 – Tạo phân vùng swap mkswap /swapfile – Kích hoạt swap swapon /swapfile – Bảo mật file swap bằng cách chmod chown root:root /swapfile chmod 0600 /swapfile – Kiểm tra lại tình trạng swap swapon -s Khi thay đổi dung lượng swap, các cài đặt từ trước như tự động kích hoạt khi server reboot, thông số Swappiness được giữ nguyên nên bạn không cần phải thao tác gì thêm. |