ZoneCloud – Võ Đỗ Khuê chia sẻ cách xử lý khi VPS đầy dung lượng – một vấn đề phổ biến ảnh hưởng nghiêm trọng đến hiệu suất và tính ổn định hệ thống. Bằng các công cụ như df, du, ncdu, và hướng dẫn chi tiết từng bước từ kiểm tra file, log, mail queue đến xóa sạch backup cũ, bài viết này giúp bạn nhanh chóng tìm ra thủ phạm và giải phóng không gian, đảm bảo dịch vụ vận hành mượt mà. Cùng theo dõi để tự tin xử lý VPS của bạn!
Hiện tượng & nguy cơ khi VPS đầy
VPS đầy dung lượng không chỉ khiến website ngừng hoạt động mà còn gây nhiều hệ quả nghiêm trọng nếu không được phát hiện và xử lý kịp thời. Dưới đây là các dấu hiệu và rủi ro điển hình:
- Lỗi 500 Internal Server Error: Đây là lỗi phổ biến nhất. Khi không còn dung lượng trống, các dịch vụ như Apache, Nginx, hoặc PHP-FPM không thể ghi log hoặc thực thi script, dẫn đến lỗi 500.
- Dịch vụ web và cơ sở dữ liệu bị treo: MySQL, Apache, Nginx… đều yêu cầu ghi log hoặc lưu cache tạm thời. Khi VPS đầy, các tiến trình này sẽ dừng lại hoặc bị lỗi khi khởi động lại. Kiểm tra log thường sẽ thấy dòng:
no space left on device
. - Không reboot được VPS: Một số trường hợp nghiêm trọng, nếu phân vùng root
/
đầy hoàn toàn, VPS có thể không khởi động lại được do không thể ghi tiến trình khởi động vào hệ thống file. - Inode đầy (inode full): Ngay cả khi dung lượng còn, VPS vẫn có thể bị “đầy” nếu inode (đơn vị quản lý file) bị sử dụng hết. Điều này thường xảy ra khi có quá nhiều file nhỏ được sinh ra liên tục, ví dụ như mail queue, log tạm, session file.
- Email cảnh báo hoặc hệ thống ngừng backup: VPS không còn chỗ để lưu trữ, khiến cron backup thất bại. Một số hệ thống giám sát sẽ gửi email cảnh báo lỗi ghi file hoặc disk full.
Những hiện tượng này nếu không được xử lý kịp thời có thể dẫn tới mất dữ liệu, ngắt mạch dịch vụ hoặc downtime nghiêm trọng, đặc biệt với các hệ thống vận hành website thương mại điện tử, API hoặc ứng dụng nội bộ.
Làm sao biết VPS đầy? – Các lệnh kiểm tra
Việc phát hiện sớm VPS bị đầy dung lượng giúp bạn chủ động xử lý trước khi dịch vụ gặp sự cố. Dưới đây là các công cụ dòng lệnh và phương pháp phổ biến để kiểm tra nhanh dung lượng VPS:
Lệnh df -h
: Hiển thị dung lượng còn trống của các phân vùng trên hệ thống.
df -h
Bạn nên chú ý đặc biệt đến phân vùng /
(root), vì đây là nơi hệ thống và phần lớn dữ liệu đặt. Nếu dòng /
có mục “Use%” lên đến 90-100%, đó là dấu hiệu VPS sắp hoặc đã đầy.
Lệnh du -sh *
: Giúp liệt kê kích thước từng thư mục trong thư mục hiện tại để xác định mục nào chiếm dung lượng lớn nhất.
cd /
du -sh *
Lặp lại lệnh trong từng thư mục lớn như /home
, /var
, /usr
để tìm “thủ phạm” chiếm dung lượng.
Kiểm tra inode với df -i
: Đôi khi VPS không đầy dung lượng nhưng bị full inode khiến hệ thống không thể tạo thêm file.
df -i
Nếu dòng /
có inode “Use%” là 100%, cần kiểm tra và xóa các file nhỏ không cần thiết.
Dùng công cụ ncdu
(nếu có): Đây là công cụ giao diện dòng lệnh giúp duyệt dung lượng sử dụng theo cây thư mục một cách trực quan.
ncdu /
Nếu chưa có, bạn có thể cài bằng: apt install ncdu
(Debian/Ubuntu) hoặc yum install ncdu
(CentOS/RHEL).
Script cảnh báo dung lượng qua email: Bạn có thể tạo cron job tự động kiểm tra và gửi email khi dung lượng vượt ngưỡng
#!/bin/bash
THRESHOLD=90
USAGE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "Disk space on / is critically high: $USAGE%" | mail -s "[ALERT] VPS disk nearly full" your@email.com
fi
Lưu file và thêm vào cron: crontab -e
Thông qua các công cụ này, bạn sẽ nắm rõ tình trạng dung lượng của VPS và kịp thời lên kế hoạch xử lý trước khi sự cố xảy ra.
>> Xem thêm: Hướng Dẫn Tạo Và Khôi Phục Dữ Liệu Trên AaPanel
Phân loại nguyên nhân & cách xử lý từng loại
Sau khi xác định VPS đầy, bước tiếp theo là phân tích nguyên nhân cụ thể để đưa ra biện pháp xử lý phù hợp. Dưới đây là các trường hợp phổ biến:
- Backup cũ trong /home, /backup: Những file backup định kỳ thường chiếm hàng GB, đặc biệt nếu bạn backup full hệ thống hoặc database mỗi ngày.
cd /home
du -sh *
cd backup
du -sh *
rm -rf file-backup.tar
Gợi ý: nếu vẫn cần giữ backup, nên di chuyển sang ổ khác hoặc upload lên dịch vụ lưu trữ (như Amazon S3, Google Drive hoặc ZoneCloud Storage).
- Log file từ Apache/Nginx/MySQL: Log file không được xoay vòng (rotate) sẽ liên tục phình to và chiếm dung lượng lớn.
cd /var/log
du -sh *
echo > /var/log/httpd/error.log
echo > /var/log/mysql/error.log
Gợi ý: cài đặt logrotate để tự động xoay log mỗi ngày và xóa log cũ:
apt install logrotate
# hoặc yum install logrotate trên CentOS
- Mail queue (Exim/Postfix): Máy chủ mail dễ bị đầy do spam hoặc lượng lớn email bị treo trong hàng đợi.
du -chs /var/spool/exim/input/ | grep total
rm -rf /var/spool/exim/input/*
Gợi ý: kiểm tra mail log để phát hiện domain hoặc script gây spam và vô hiệu hóa.
- Website cache, uploads, temp trong public_html: Website sinh ra nhiều file cache, log debug, session file hoặc hình ảnh upload thủ công. Chúng nằm rải rác trong:
/home/user/public_html/cache
/home/user/public_html/uploads
/tmp
Xóa cache bằng công cụ CMS (WordPress, Joomla…) thay vì xóa thủ công; cấu hình cron tự động dọn file tạm.
Việc xác định đúng “thủ phạm” và xử lý đúng cách sẽ giúp VPS nhanh chóng khôi phục dung lượng và vận hành ổn định trở lại.
Công cụ & tips nâng cao
Khi VPS thường xuyên đầy dung lượng, việc sử dụng các công cụ hỗ trợ và áp dụng chiến lược tự động dọn dẹp sẽ giúp bạn tiết kiệm thời gian và tăng độ ổn định cho hệ thống:
- Sử dụng
ncdu
để duyệt dung lượng thư mục dễ hiểu hơn:
ncdu /
Công cụ này cho phép bạn điều hướng qua từng thư mục bằng bàn phím và hiển thị dung lượng một cách trực quan.
- Dùng
find
để truy tìm các file lớn theo kích thước:
find / -type f -size +500M -exec ls -lh {} \;
Dễ dàng phát hiện các file log, backup, media chiếm dung lượng lớn để xử lý.
- Thiết lập cron job tự động cleanup định kỳ: Tạo script xoá log cũ, xóa backup cũ, xóa session file theo thời gian. Ví dụ xoá file trên 7 ngày:
find /home/user/backups -type f -mtime +7 -exec rm -f {} \;
Thêm vào crontab:
crontab -e
0 2 * * * /bin/bash /home/user/scripts/cleanup.sh
- Cấu hình Disk Quota để giới hạn dung lượng theo người dùng:
- Cài đặt:
apt install quota
hoặcyum install quota
- Bật quota trên phân vùng: chỉnh
/etc/fstab
, mount lại và dùngedquota
,repquota
để áp dụng.
- Cài đặt:
- Backup ra Storage ngoài (S3, Google Drive, ZoneCloud Object Storage): Nếu bạn cần giữ backup, hãy cấu hình script upload tự động ra dịch vụ ngoài để tiết kiệm ổ đĩa. ZoneCloud hỗ trợ cấu hình backup định kỳ sang storage riêng biệt.
Khi nào nên nâng cấp VPS?
Không phải lúc nào dọn dẹp cũng là giải pháp bền vững. Khi VPS của bạn thường xuyên báo đầy hoặc không đủ tài nguyên để xử lý các tác vụ cơ bản, đã đến lúc bạn cần cân nhắc nâng cấp:
- Dung lượng đĩa dù đã dọn dẹp vẫn không đáp ứng được chu kỳ backup, lưu log.
- CPU hoặc RAM luôn ở mức >90%, VPS lag chậm, phản hồi trễ.
- Website/ứng dụng có lượt truy cập lớn, chạy AI, render hoặc backend xử lý dữ liệu nặng.
Giải pháp: Tham khảo các gói VPS cao cấp tại ZoneCloud như:
- ZC5 – ZC6: Dung lượng lớn, SSD tốc độ cao, tài nguyên linh hoạt.
- VPS Custom: Tùy biến RAM, disk, băng thông, phù hợp với các doanh nghiệp hoặc dự án đặc thù.
- Tích hợp backup tự động & cảnh báo đầy dung lượng.
Làm sao biết VPS bị đầy dung lượng?
Bạn có thể dùng lệnh
df -h
để kiểm tra phân vùng vàdu -sh *
để xác định thư mục nào chiếm dung lượng lớn. Ngoài ra, dùngncdu
sẽ giúp bạn xem dung lượng theo cấu trúc cây thư mục dễ hiểu hơn.VPS đầy nhưng vẫn còn dung lượng là do đâu?
Đây có thể là do inode đã đầy (quá nhiều file nhỏ), kiểm tra bằng
df -i
. Dù còn dung lượng đĩa, VPS vẫn không thể tạo file mới nếu inode hết.Có thể tự động cảnh báo khi VPS sắp đầy không?
Có, bạn có thể dùng script bash kết hợp với cron job để kiểm tra định kỳ và gửi email khi dung lượng vượt ngưỡng thiết lập.
Xóa log hoặc backup có ảnh hưởng hệ thống không?
Xóa log hoặc backup không ảnh hưởng hệ thống nếu bạn xác định chính xác file cần xoá. Tuy nhiên, cần cẩn trọng với lệnh
rm -rf
, vì xóa nhầm thư mục hệ thống sẽ gây lỗi nghiêm trọng.Khi nào nên nâng cấp VPS thay vì dọn dẹp?
Khi bạn đã tối ưu hết mức nhưng dung lượng vẫn thiếu, hoặc tài nguyên hệ thống (RAM/CPU/disk) không đủ để đáp ứng công việc, nên nâng cấp gói VPS phù hợp hơn tại ZoneCloud.