VPS đầy dung lượng – Nguyên nhân & 5 cách xử lý triệt để

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ặc yum install quota
    • Bật quota trên phân vùng: chỉnh /etc/fstab, mount lại và dùng edquota, repquota để áp dụng.
  • 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.
  1. 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ùng ncdu sẽ giúp bạn xem dung lượng theo cấu trúc cây thư mục dễ hiểu hơn.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

5/5 - (183 bình chọn)
THÔNG TIN LIÊN HỆ
Cập nhật lần cuối lúc: 16:26 * 29/07/2025
Chia sẻ bài viết:
Picture of Võ Đỗ Khuê
Võ Đỗ Khuê
Tôi là Võ Đỗ Khuê, Co-founder của ZoneCloud, đam mê công nghệ và cam kết mang đến giải pháp lưu trữ Hosting/VPS/Server an toàn, hiệu quả cho doanh nghiệp. Với kinh nghiệm nhiều năm trong lĩnh vực hạ tầng số, tôi luôn hướng đến việc tối ưu hiệu suất và bảo mật, giúp khách hàng yên tâm phát triển.

Có thể bạn quan tâm

Cách add ip linux local trên VPS

Cách add IP Linux Local trên VPS chi tiết

Tôi từng gặp không ít trường hợp khách hàng chia sẻ: thêm IP local cho VPS xong thì mất sạch sau khi reboot. Thực ra, cách add IP Linux local...

Kiểm tra inodes trên VPS

Cách kiểm tra inodes trên VPS và xử lý lỗi đầy inode hiệu quả

Trong quá trình vận hành máy chủ, tình trạng đầy inode là nguyên nhân phổ biến khiến VPS không thể tạo file mới dù vẫn còn dung lượng. Trong bài...

Truy cập điện thoại bằng điện thoại Android

Cách truy cập VPS bằng điện thoại Android: Hướng dẫn chi tiết từ A đến Z

Bạn đang cần truy cập VPS gấp nhưng lại chỉ có chiếc điện thoại Android bên cạnh? Đừng lo! Với sự phát triển của công nghệ, bạn hoàn toàn có...