Máy chủ nhỏ hết bộ nhớ vào lúc tệ nhất: một lần apt upgrade, một lần build Docker, bản sao lưu lúc nửa đêm. Không có swap, OOM killer của kernel sẽ chọn một tiến trình và buộc dừng nó, thường là cơ sở dữ liệu của bạn. Tệp swap là một chiếc dây an toàn rẻ tiền cho những đợt tăng đột biến ấy một lối thoát. Chỉ cần năm lệnh.
1. Kiểm tra hiện trạng
swapon --show
free -h
Nếu swapon --show không in ra gì, nghĩa là chưa có swap.
2. Tạo tệp swap
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
chmod 600 rất quan trọng: swap có thể chứa các mảnh của bất cứ thứ gì từng nằm trong bộ nhớ, kể cả bí mật, nên chỉ root được đọc. Nếu fallocate báo lỗi “operation not supported”, hãy dùng dd thay thế:
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
3. Làm cho nó cố định
Thiếu bước này, swap sẽ biến mất sau khi khởi động lại:
echo '/swapfile none swap sw 0 0' >> /etc/fstab
4. Chỉnh swappiness
Yêu cầu kernel ưu tiên RAM và chủ yếu dùng swap khi chịu áp lực:
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
sysctl --system
5. Kiểm tra lại
swapon --show
free -h
Bạn sẽ thấy một thiết bị swap 2 GB, và cat /proc/sys/vm/swappiness sẽ in ra 10.
Kích thước bao nhiêu?
- Máy chủ có 1–2 GB RAM: 1–2 GB swap.
- 4 GB trở lên: 1–2 GB vẫn đủ làm lưới an toàn.
Đừng chọn swap theo kiểu “gấp đôi RAM”. Trên máy chủ, swap dùng để hấp thụ các đợt tăng ngắn, không phải để chạy những tác vụ không vừa bộ nhớ.
Khi swap không phải là câu trả lời
Theo dõi nó trong vài ngày:
vmstat 5
Các cột si và so cho biết số trang được đọc từ swap và ghi vào swap mỗi giây. Thỉnh thoảng có hoạt động là bình thường. Giá trị khác 0 liên tục nghĩa là máy chủ thiếu bộ nhớ và mọi thứ đang chờ đĩa. Lúc đó giải pháp là thêm RAM: xem VPS cần bao nhiêu RAM. Tại EQVPS bạn có thể chuyển lên gói lớn hơn mà không cần cài lại; dữ liệu của bạn vẫn nằm nguyên chỗ cũ.
Bình luận
Chưa có bình luận nào. Hãy là người đầu tiên.