Fast Byte - Thuê VPS Giá Rẻ
Hướng dẫn chung

Cách Xử Lý VPS Đầy Tài Nguyên: Full Disk, Hết RAM, CPU 100%

Xử lý VPS đầy tài nguyên là việc bạn nên làm ngay khi website chậm bất thường, SSH lag hoặc nhận cảnh báo “No space left on device”. Dưới đây là cách chẩn đoán và khắc phục theo từng bước, ưu tiên lệnh cụ thể và cảnh báo trước các thao tác rủi ro. Dấu […]

Ảnh đại diện adminadmin15 phút đọc

Xử lý VPS đầy tài nguyên là việc bạn nên làm ngay khi website chậm bất thường, SSH lag hoặc nhận cảnh báo “No space left on device”. Dưới đây là cách chẩn đoán và khắc phục theo từng bước, ưu tiên lệnh cụ thể và cảnh báo trước các thao tác rủi ro.

Dấu hiệu nhận biết VPS đang cạn kiệt tài nguyên

Mỗi triệu chứng thường đến từ một tài nguyên cụ thể. Xác định đúng nhóm triệu chứng sẽ giúp bạn chạy đúng lệnh ngay từ đầu, tránh mất 10-15 phút thử sai không cần thiết.

Triệu chứng Tài nguyên khả nghi Lệnh chẩn đoán đầu tiên
Website chậm, SSH lag, phản hồi chậm RAM / swap free -m
Lỗi “No space left on device” Disk df -h
Ổ cứng đầy dần theo ngày Log / cache du -sh /var/log/*
VPS treo, không SSH được, tự khởi động lại RAM (OOM) / CPU dmesg | grep -i "killed process"
Load average cao, mọi thứ chậm đều CPU ps aux --sort=-%cpu | head

dấu hiệu VPS full tài nguyên

Kiểm tra tài nguyên VPS: 3 lệnh chẩn đoán nhanh

Ba lệnh dưới đây chạy trong khoảng 30 giây và cho bạn bức tranh tổng thể. Trước khi bắt đầu, nên xác nhận cách kiểm tra cấu hình VPS thực tế so với cam kết để chắc rằng bạn không đang chẩn đoán nhầm trên một cấu hình bị cấp thiếu.

Kiểm tra dung lượng ổ cứng với df -h

df -h

Kết quả trả về bảng phân vùng và cột Use%. Bất kỳ dòng nào có Use% từ 90% trở lên đều có thể gây lỗi ghi file, treo database và làm log tiếp tục phình ra. Cột Avail cho biết dung lượng còn trống thực tế.

Nếu phân vùng / đầy nhưng bạn không rõ thư mục nào chiếm chỗ, chuyển sang bước xác định bằng du ở phần dưới. Nếu VPS đang chạy website bán hàng, đọc thêm hướng dẫn tối ưu VPS cho website thương mại điện tử khi lượng truy cập tăng. Đây là nhóm thường gặp lỗi này khi flash sale.

Lưu ý:

Không chạy rm -rf trên thư mục hệ thống trước khi xác định rõ nội dung bằng du -sh. Xóa nhầm /var/lib/mysql hoặc /etc có thể làm hỏng VPS và mất dữ liệu vĩnh viễn.

Kiểm tra RAM với free -m

free -m

Cột available là chỉ số quan trọng nhất. Đây là RAM hệ thống thực sự còn có thể cấp cho tiến trình mới. Cột buff/cache cao không phải vấn đề, kernel sẽ tự giải phóng khi cần. Ngưỡng cảnh báo: available dưới 10% tổng RAM, hoặc swap đã dùng trên 50%.

Với VPS treo tool MMO 24/7, RAM thường bị ăn dần theo giờ do rò rỉ bộ nhớ. Công thức tính dung lượng cần thiết được trình bày trong bài công thức tính RAM cho VPS treo tool 24/7. Nên đọc trước khi quyết định nâng cấu hình.

Kiểm tra CPU và tiến trình với htop

sudo apt install htop -y && htop

Trong giao diện htop, nhấn P để sắp xếp theo CPU, nhấn M để sắp xếp theo RAM. Tiến trình nằm đầu danh sách là ứng viên chính. Nhấn F6 rồi chọn PERCENT_CPU nếu muốn sắp xếp theo mức tiêu thụ CPU tích lũy.

Cột RES là RAM thực tế tiến trình đang giữ. Cột VIRT thường bị phóng đại và không phản ánh đúng mức tiêu thụ. Chỉ nên nhìn RES khi đánh giá.

Thuê VPS giá rẻ

CPU Intel Gold, SSD NVMe U.2, từ 50K/tháng

Nâng cấp thay vì dọn dẹp thủ công?

Nếu bạn thường xuyên phải dọn dẹp và tối ưu, có thể cấu hình hiện tại không còn phù hợp. Fast Byte có các gói VPS với ưu đãi tiết kiệm, đủ tài nguyên cho website, tool và môi trường học tập.

Xem ưu đãi VPS tiết kiệm

Xử lý VPS full disk: Dọn dẹp ổ cứng theo thứ tự an toàn

Thứ tự dưới đây được sắp xếp từ thao tác ít rủi ro nhất đến thao tác cần cân nhắc kỹ. Dừng lại ngay khi df -h cho thấy dung lượng đã đủ dùng. Bạn không cần chạy hết các bước.

cách xử lý VPS đầy tài nguyên

Bước 1: Xác định thư mục chiếm dung lượng lớn với du -sh

sudo du -sh /* 2>/dev/null | sort -rh | head -10

Lệnh liệt kê 10 thư mục cấp cao nhất chiếm nhiều dung lượng nhất, sắp xếp giảm dần. Kết quả thường chỉ ra ngay thủ phạm. Nếu cần duyệt sâu hơn theo giao diện tương tác, cài ncdu:

sudo apt install ncdu -y && sudo ncdu /var

Dùng phím mũi tên để điều hướng, nhấn d để xóa file ngay trong giao diện. Đây là cách nhanh nhất để tìm ra thư mục phình to mà không cần gõ lệnh liên tục.

Bước 2: Dọn log hệ thống an toàn với journalctl

sudo journalctl --disk-usage
sudo journalctl --vacuum-time=3d
sudo journalctl --vacuum-size=200M

Lệnh đầu tiên cho biết journal đang chiếm bao nhiêu. Hai lệnh sau chỉ giữ log 3 ngày gần nhất hoặc giới hạn tổng dung lượng 200MB. Trên VPS chạy lâu ngày, journal có thể chiếm vài GB.

Lưu ý:

journalctl --vacuum chỉ xoay vòng log cũ, không đụng tới log đang được ghi. Tuy nhiên nếu bạn đang debug sự cố cần tra cứu log cũ, hãy xuất log ra file ngoài trước khi vacuum.

Với log ứng dụng như Nginx, Apache, PHP-FPM nằm trong /var/log/, kiểm tra dung lượng từng file trước khi xử lý:

sudo du -sh /var/log/* | sort -rh | head -10

Cách xử lý an toàn nhất là truncate thay vì xóa. Cách này giữ nguyên file để service không mất file descriptor, nhưng vẫn giải phóng dung lượng:

sudo truncate -s 0 /var/log/nginx/access.log

Bước 3: Dọn dẹp APT cache và package cũ

sudo apt clean
sudo apt autoclean
sudo apt autoremove --purge -y

Ba lệnh này thường giải phóng từ vài trăm MB tới vài GB trên VPS chưa từng dọn. apt clean xóa toàn bộ cache gói tải về. autoclean chỉ xóa gói cache đã lỗi thời. autoremove gỡ các gói phụ thuộc không còn cần thiết.

Bước 4: Dọn dẹp Docker nếu có

docker system df

Lệnh này liệt kê dung lượng mà images, containers, volumes và build cache đang chiếm. Thư mục /var/lib/docker/overlay2/ là nơi phình to nhanh nhất. Nếu thấy images chiếm nhiều GB, tiếp tục bước dọn dẹp:

docker container prune -f
docker image prune -a -f
docker builder prune -a -f

Lưu ý trước khi chạy docker system prune -a:

Lệnh này xóa tất cả image không được container đang chạy sử dụng, kể cả image bạn đã build thủ công. Kiểm tra docker ps -a trước. Không dùng --volumes nếu bạn không chắc volume nào đang chứa dữ liệu database. Xóa nhầm volume đồng nghĩa mất dữ liệu.

Sau khi dọn dẹp, kiểm tra lại:

  • Chạy lại df -h để xác nhận dung lượng đã giải phóng.
  • Kiểm tra service chính còn chạy bình thường: systemctl status nginx, systemctl status mysql.
  • Kiểm tra website truy cập được và ghi log bình thường.

Xử lý VPS hết RAM: OOM killer và swap

OOM killer là gì? Đây là cơ chế của kernel Linux tự động chọn và kết thúc một tiến trình khi RAM cạn hoàn toàn, nhằm giữ hệ thống không bị treo cứng. Tiến trình bị giết thường là tiến trình ngốn nhiều RAM nhất. Đôi khi đó chính là database hoặc web server của bạn.

Cách xác định OOM killer đã kích hoạt

sudo dmesg | grep -i "killed process"
sudo journalctl -k | grep -i -E "oom|out of memory"

Kết quả sẽ hiển thị dòng dạng Out of memory: Killed process 1234 (mysqld). Tên tiến trình trong ngoặc chính là nạn nhân, và cũng thường là tiến trình cần được cấu hình lại hoặc giới hạn RAM. Ghi lại tên này trước khi tiếp tục.

Tạo swap file để giảm áp lực RAM

Swap không thay thế RAM, nhưng nó tạo vùng đệm giúp hệ thống không sập khi RAM tạm thời cạn. Các lệnh dưới đây tạo swap 2GB. Điều chỉnh count=2048 nếu muốn dung lượng khác.

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo sysctl vm.swappiness=10

Kiểm tra lại bằng free -m. Dòng Swap sẽ hiển thị dung lượng vừa tạo. Chỉ số vm.swappiness=10 giúp kernel ưu tiên giữ dữ liệu trong RAM và chỉ swap khi thực sự cần, phù hợp với VPS chạy database.

Lưu ý:

Swap nằm trên ổ đĩa, tốc độ chậm hơn RAM nhiều lần. Nếu hệ thống liên tục swap, hiệu năng sẽ giảm nghiêm trọng. Đây là dấu hiệu bạn cần nâng RAM thực, không phải thêm swap. VPS dùng SSD NVMe U.2 xử lý swap tốt hơn ổ HDD, nhưng vẫn không thể so với RAM.

Với workload nuôi nhiều tài khoản sàn thương mại điện tử, RAM thường là tài nguyên cạn trước tiên. Tham khảo hướng dẫn tối ưu tài nguyên VPS khi nuôi nhiều tài khoản sàn thương mại điện tử để biết cách phân bổ tiến trình hợp lý.

Giới hạn RAM cho tiến trình cụ thể

Cách bền vững nhất là giới hạn RAM ngay từ lúc khởi chạy tiến trình. Với systemd, dùng systemd-run để chạy tiến trình trong một scope có giới hạn:

sudo systemd-run --scope -p MemoryMax=512M -p MemorySwapMax=256M /path/to/app

Với tiến trình chạy trong shell, dùng ulimit để chặn rò rỉ bộ nhớ làm sập cả VPS. Cách này đặc biệt hữu ích khi bạn treo tool trên VPS để kiểm soát tiến trình. Một tool bị treo không nên kéo cả hệ thống xuống theo.

Xử lý VPS CPU 100%: Tìm tiến trình và kiểm soát

Tìm tiến trình ngốn CPU

ps aux --sort=-%cpu | head -10
uptime

Lệnh đầu liệt kê 10 tiến trình ngốn CPU nhiều nhất. Lệnh uptime cho biết load average trong 1, 5 và 15 phút. Nếu load average vượt số CPU core (kiểm tra bằng nproc), hệ thống đang quá tải thực sự.

Xử lý tạm thời và dài hạn

Giảm độ ưu tiên của tiến trình thay vì tắt nó. Cách này giữ service hoạt động nhưng nhường CPU cho phần còn lại:

sudo renice +10 -p 

Nếu tiến trình vẫn ngốn CPU vô hạn, giới hạn mức sử dụng bằng cpulimit:

sudo apt install cpulimit -y
sudo cpulimit -p  -l 50

Lệnh trên giới hạn tiến trình ở 50% một CPU core. Với service chạy qua systemd, cấu hình CPUQuota=50% trong file unit là giải pháp bền vững hơn vì tự động áp dụng mỗi lần khởi động lại.

Lưu ý:

Không chạy kill -9 khi chưa hiểu tiến trình đó làm gì. kill -9 không cho tiến trình cơ hội đóng file, ghi dữ liệu hoặc giải phóng lock. Cách này có thể gây hỏng database hoặc mất dữ liệu chưa lưu. Thử kill -15 (SIGTERM) trước và chờ 10 giây.

Thuê VPS giá rẻ

CPU Intel Gold, SSD NVMe U.2, từ 50K/tháng

Cần cấu hình đủ tài nguyên cho công việc?

Nếu sau khi dọn dẹp và tối ưu bạn vẫn thường xuyên chạm ngưỡng tài nguyên, đó là dấu hiệu cấu hình hiện tại không còn phù hợp. Fast Byte có các gói VPS với CPU Intel Gold, SSD NVMe U.2, băng thông không giới hạn hàng tháng và cổng mạng 100 Mbps.

Xem bảng giá VPS giá rẻ

Khi nào nên nâng cấp VPS thay vì tiếp tục tối ưu?

Tối ưu có giới hạn. Khi workload tăng trưởng liên tục, việc dọn dẹp chỉ kéo dài thời gian trước khi sự cố lặp lại. Bảng dưới đây giúp bạn quyết định dựa trên dữ liệu quan sát được.

Tình huống Nên tối ưu trước? Nên nâng cấp?
Disk đầy do log chưa từng dọn Có. Dọn log và bật logrotate Chưa cần
RAM đầy nhưng phần lớn là cache Có. Cache không phải vấn đề Chưa cần
OOM killer kích hoạt nhiều lần trong tuần Thử giới hạn tiến trình 1-2 tuần Nếu vẫn lặp lại, nên nâng RAM
CPU thường xuyên trên 80% giờ cao điểm Kiểm tra tiến trình bất thường Nếu là lưu lượng thật, nên nâng CPU
Disk đầy lại trong 3-5 ngày sau khi dọn Không hiệu quả Có. Nâng dung lượng lưu trữ

Một yếu tố ít được chú ý là cách nhà cung cấp phân bổ tài nguyên. Bạn có thể đọc thêm cách Hetzner phân bổ tài nguyên VPS để hiểu mô hình cấp phát theo cam kết, hoặc tìm hiểu hiện tượng giật lag trên VPS Contabo khi tài nguyên bị chia sẻ quá mức. Cấu hình ghi cao trên giấy không đồng nghĩa với hiệu năng ổn định trong thực tế.

Nếu bạn đã xác định cần nâng cấp, đọc cách chọn cấu hình VPS phù hợp với nhu cầu thực tế để tránh trả tiền cho tài nguyên bạn không dùng tới.

Phòng ngừa VPS đầy tài nguyên: 4 thói quen bắt buộc

  1. Bật logrotate cho mọi log ứng dụng. Tạo file /etc/logrotate.d/myapp với cấu hình xoay vòng theo ngày và giữ tối đa 7 bản. Kiểm tra cấu hình bằng sudo logrotate -d /etc/logrotate.conf trước khi áp dụng.
  2. Đặt giới hạn tài nguyên cho service. Trong file systemd unit, thêm MemoryMax=CPUQuota=. Một service lỗi sẽ không kéo sập cả VPS.
  3. Giám sát bằng cron đơn giản. Tạo script chạy mỗi 15 phút, ghi lại df -h, free -muptime vào file log có logrotate quản lý. Khi sự cố xảy ra, bạn có dữ liệu lịch sử để tra cứu thay vì đoán.
  4. Dọn định kỳ thay vì đối phó. Lên lịch chạy apt autoremove, journalctl --vacuum-time=7ddocker system prune -f mỗi tháng một lần. Dọn khi hệ thống còn khỏe an toàn hơn nhiều so với dọn khi đã đầy.

Câu hỏi thường gặp về xử lý VPS đầy tài nguyên

VPS full disk có tự khắc phục được không?

Không. VPS full disk cần can thiệp thủ công. Log hệ thống, Docker image hoặc file tạm sẽ tiếp tục tích tụ và làm tình trạng nặng hơn. Bạn phải SSH vào, xác định thư mục chiếm dung lượng lớn bằng du -sh và dọn dẹp theo thứ tự an toàn.

Làm sao để biết VPS đang bị OOM killer?

Chạy dmesg | grep -i "killed process" hoặc journalctl -k | grep -i oom. Nếu có dòng thông báo “Out of memory: Killed process” kèm tên tiến trình, OOM killer đã can thiệp. Đây là nguyên nhân phổ biến khiến service đột ngột dừng mà không có log lỗi rõ ràng.

Tạo swap file cho VPS có ảnh hưởng hiệu năng không?

Có, nhưng theo hướng tích cực nếu dùng đúng cách. Swap giúp hệ thống không sập khi RAM tạm cạn. Tuy nhiên nếu swap liên tục được đọc ghi, hiệu năng sẽ giảm rõ rệt vì ổ đĩa chậm hơn RAM. Đặt vm.swappiness=10 để hạn chế điều này.

Nên dọn log VPS bằng lệnh nào an toàn?

Dùng journalctl --vacuum-time=3d cho log hệ thống và truncate -s 0 /path/to/log cho log ứng dụng. Tránh rm trực tiếp vì có thể làm service mất file descriptor và không ghi log được nữa cho tới khi restart.

Khi nào cần nâng cấp cấu hình VPS thay vì dọn dẹp?

Khi tài nguyên cạn trở lại trong vài ngày sau khi dọn, khi OOM killer kích hoạt nhiều lần mỗi tuần, hoặc khi CPU giữ trên 80% trong giờ cao điểm. Đây là dấu hiệu workload đã vượt cấu hình hiện tại, không phải vấn đề vệ sinh hệ thống.

Tóm gọn: Chẩn đoán đúng, xử lý an toàn, phòng ngừa từ đầu

Xử lý VPS đầy tài nguyên không khó nếu bạn chẩn đoán đúng nguồn gốc. Ba điểm cần nhớ: dùng df -h, free -mhtop để xác định tài nguyên nào đang cạn; dọn dẹp theo thứ tự an toàn, luôn xác định trước khi xóa; thiết lập logrotate cùng giới hạn tài nguyên để ngăn tái diễn. Nếu tối ưu không còn đủ, nâng cấp cấu hình là quyết định hợp lý thay vì tiếp tục chữa cháy.

Cần VPS đủ tài nguyên để làm việc?

CPU Intel Gold, SSD NVMe U.2, băng thông không giới hạn. Toàn quyền root, sẵn sàng triển khai.

Xem ưu đãi VPS tiết kiệm

Bài viết tham khảo cho Ubuntu 22.04 và 24.04 LTS với quyền root hoặc sudo. Tùy phiên bản hệ điều hành, cấu hình VPS và môi trường thực tế, kết quả có thể khác. Nên sao lưu dữ liệu, kiểm thử trên môi trường staging và đánh giá rủi ro trước khi áp dụng cho production.

Chia sẻ: Facebook LinkedIn
Quay lại trang blog

Bài viết liên quan

Cách Đo Tốc Độ Ổ Cứng VPS Ubuntu 24.04 Bằng hdparm
Hướng dẫn chung

Cách Đo Tốc Độ Ổ Cứng VPS Ubuntu 24.04 Bằng hdparm Cực Nhanh (3 Phút)

Đo tốc độ ổ cứng VPS Ubuntu 24.04 bằng hdparm là giải pháp kiểm tra hiệu năng chuẩn xác giúp bạn nhanh chóng phát hiện tình trạng giật lag, nghẽn truy xuất dữ liệu mà CPU hay RAM không phản ánh hết. Dưới đây, ThueVPSGiaRe.vn sẽ hướng dẫn cách dùng hdparm benchmark ổ cứng trên […]

Thanh Lam Nguyễn
Đọc bài viết