Cách check tài nguyên VPS (CPU, RAM, disk) trong 30 giây

Tài liệu » Quản trị VPS - Server » Cách check tài nguyên VPS (CPU, RAM, disk) trong 30 giây

Cách check tài nguyên VPS (CPU, RAM, disk) trong 30 giây

TL;DR

Mở SSH → gõ 4 lệnh → biết VPS đang khoẻ hay sắp sập trong đúng 30 giây.

  • Tổng: 30 giây — không cần web panel, không cần plugin

  • 4 thứ kiểm tra: CPU load, RAM available, disk used, network in/out

  • 📝 Bonus: 1 script bash gộp 4 lệnh thành 1 lệnh duy nhất vps-status

  • 🚨 Cảnh báo: Khi nào nên upgrade VPS, khi nào chỉ cần dọn dẹp

Vì sao cần check tài nguyên VPS thường xuyên?

90% lỗi VPS production đều bắt đầu bằng 1 trong 3 thứ: hết RAM, full disk, hoặc CPU 100%. Phát hiện sớm = fix trong 5 phút thay vì wake-up 3h sáng vì site sập.

Pain point thường gặp:

  • 🐌 Site load chậm bất thường mà không biết bottleneck ở đâu

  • 💥 Service tự crash rồi tự restart liên tục — log đầy “OOM killed”

  • 📉 Database query chậm dần khi disk gần full (>85%)

  • 💸 Lỡ tiền upgrade VPS trong khi chỉ cần xoá cache là đủ

Bài này dạy bạn routine 30 giây check sức khoẻ VPS — gõ trước khi đi ngủ + sau khi deploy version mới.

💡 Mẹo: Bookmark bài, copy script vps-status ở cuối — chạy 1 lệnh duy nhất là xong.

4 câu hỏi VPS phải trả lời được trong 30 giây

Tóm gọn: Đừng xem 50 metrics — chỉ cần 4 con số sau là đủ phát hiện 90% vấn đề.

#Câu hỏiLệnhNgưỡng cảnh báo
1CPU đang busy bao nhiêu?uptime hoặc top -b -n1 \| head -3Load > số core
2RAM còn khả dụng bao nhiêu?free -havailable < 15% total
3Disk đầy chưa?df -h /Used > 85%
4Mạng đang in/out bao nhiêu?vnstat -tr 5Sát limit gói VPS

Phần dưới em đi từng câu — copy lệnh chạy ngay.

Câu 1 — CPU đang busy bao nhiêu? Lệnh uptime

Tóm gọn: Lệnh ngắn nhất, 5 giây biết CPU healthy hay overloaded.

uptime

Output:

 14:23:01 up 12 days,  3:42,  2 users,  load average: 0.45, 0.62, 0.58

3 con số load average quan trọng nhất:

  • 1 phút gần nhất (0.45) → trạng thái hiện tại

  • 5 phút gần nhất (0.62) → trạng thái trung hạn

  • 15 phút gần nhất (0.58) → trạng thái dài hạn

So sánh với số CPU core của VPS (kiểm bằng nproc):

  • Load < số core × 0.7 → khoẻ

  • Load = số core → busy nhưng OK

  • Load > số core × 2 → overload, cần can thiệp

💡 Mẹo: VPS 2 core mà load average 5 phút = 4 → CPU đang quá tải gấp đôi. Restart service hoặc upgrade.

Sâu hơn: process nào đang ăn CPU?

top -b -n1 -o %CPU | head -15

In top 10 process sort theo CPU%. Khoanh vùng thủ phạm trong 3 giây.

Câu 2 — RAM còn khả dụng bao nhiêu? Lệnh free -h

Tóm gọn: Đừng nhìn cột free — nhìn cột available mới đúng.

free -h

Output:

              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       1.2Gi       180Mi       12Mi       540Mi       560Mi
Swap:         512Mi        12Mi       500Mi

Cột quan trọng:

  • total — tổng RAM VPS có

  • used — đang dùng (gồm cả buff/cache)

  • available — RAM thực sự sẵn sàng cấp cho app mới

⚠️ Warning: available < 15% total là báo động. Sắp OOM kill app.

Process nào ngốn RAM nhất?

ps aux --sort=-%mem | head -6

Top 5 process ăn RAM. PHP-FPM với MySQL thường đứng đầu site WordPress.

Check OOM kill history

sudo dmesg | grep -i "killed process" | tail -5

Nếu thấy “Killed process X (mysqld)” → kernel đã giết MySQL vì hết RAM. Cần upgrade RAM hoặc tune my.cnf.

Câu 3 — Disk đầy chưa? Lệnh df -h /

Tóm gọn: Use% > 85% là báo động — MySQL/log fill disk = service crash ngay lập tức.

df -h /

Output:

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   42G  5.5G   89% /

Use% 89% là vùng đỏ — cần dọn dẹp NGAY.

Tìm folder nào ngốn disk nhất

du -h --max-depth=1 / 2>/dev/null | sort -h | tail -10

Output mẫu:

180M    /etc
2.1G    /home
4.5G    /usr
6.8G    /root
12G /var
35G /data

/var lớn bất thường? Check log:

du -h --max-depth=1 /var/log 2>/dev/null | sort -h | tail

💡 Mẹo: Cài ncdu (sudo apt install ncdu -y) → chạy ncdu / → giao diện text-mode duyệt folder bằng phím tắt, tìm thủ phạm nhanh hơn 10×.

Cleanup nhanh các thủ phạm phổ biến

# Log cũ
sudo journalctl --vacuum-time=7d

# APT cache
sudo apt clean

# Docker images không dùng (nếu có Docker)
docker system prune -af

# Tmp file > 7 ngày
sudo find /tmp -type f -atime +7 -delete

Thường giải phóng được 2-10 GB ngay.

Câu 4 — Mạng đang in/out bao nhiêu? vnstat

Tóm gọn: Bandwidth gần limit gói VPS = phải nâng plan hoặc cache CDN gấp.

Cài 1 lần:

sudo apt install vnstat -y
sudo systemctl enable --now vnstat
sleep 60   # cần 1 phút thu thập data ban đầu

Sau đó:

vnstat -h           # in/out theo từng giờ trong 24h qua
vnstat -d           # tổng hàng ngày
vnstat --tr 5       # in/out realtime trong 5 giây

Output vnstat -d:

 day         rx      |     tx      |    total    |   avg. rate
 ----------+--------+--------------+--------------+---------
 today    245.2 MiB |  1.85 GiB    |  2.09 GiB    |  198.6 kbit/s
 yesterday 312.4 MiB |  2.31 GiB    |  2.61 GiB    |  248.1 kbit/s

So sánh với gói VPS:

  • VPS 1 TB/tháng = ~33 GB/ngày → 2 GB/day là OK

  • VPS unlimited bandwidth (như VSIS) → không lo

Process nào đang dùng nhiều bandwidth?

sudo apt install iftop -y
sudo iftop -i eth0    # realtime in/out per connection

Nhấn q thoát.

BONUS: 1 script gộp tất cả thành lệnh vps-status

Tóm gọn: Em viết sẵn — copy vào VPS, chạy vps-status là ra full report 30 giây.

Cài đặt 1 lần:

sudo tee /usr/local/bin/vps-status > /dev/null <<'EOF'
#!/bin/bash
echo "═══ VPS STATUS @ $(date '+%Y-%m-%d %H:%M:%S') ═══"
echo ""
echo "▶ CPU LOAD ($(nproc) cores):"
uptime | awk -F'load average:' '{print "  "$2}'
echo ""
echo "▶ TOP 5 CPU:"
ps -eo pid,pcpu,comm --sort=-pcpu | head -6 | tail -5 | awk '{printf "  %5s%6s%%  %s\n",$1,$2,$3}'
echo ""
echo "▶ RAM:"
free -h | awk 'NR==2{printf "  Used %s / %s | Available %s\n", $3,$2,$7}'
echo ""
echo "▶ TOP 5 RAM:"
ps -eo pid,pmem,comm --sort=-pmem | head -6 | tail -5 | awk '{printf "  %5s%6s%%  %s\n",$1,$2,$3}'
echo ""
echo "▶ DISK:"
df -h / | awk 'NR==2{printf "  Used %s / %s (%s) | Free %s\n", $3,$2,$5,$4}'
echo ""
echo "▶ NETWORK (interface eth0):"
which vnstat >/dev/null && vnstat --oneline | awk -F\; '{printf "  Today RX %s | TX %s\n", $4,$5}' || echo "  (vnstat not installed — sudo apt install vnstat -y)"
echo ""
echo "▶ UPTIME:"
uptime -p | sed 's/^/  /'
EOF
sudo chmod +x /usr/local/bin/vps-status

Sau đó mỗi lần check chỉ cần:

vps-status

Output mẫu:

═══ VPS STATUS @ 2026-05-12 14:23:01 ═══

▶ CPU LOAD (2 cores):
   0.45, 0.62, 0.58

▶ TOP 5 CPU:
   1234  12.3%  php-fpm8.3
   1567   8.7%  mysql
   ...

▶ RAM:
  Used 1.2Gi / 1.9Gi | Available 560Mi

▶ DISK:
  Used 42G / 50G (89%) | Free 5.5G

▶ NETWORK (interface eth0):
  Today RX 245.2 MiB | TX 1.85 GiB

▶ UPTIME:
  up 12 days, 3 hours, 42 minutes

💡 Mẹo: Cron 6h/lần gửi report qua Telegram — bài tiếp theo trong serie sẽ hướng dẫn.

Sai lầm phổ biến khi check tài nguyên

  • Nhìn cột free của free -h thay vì available → tưởng VPS hết RAM nhưng thực tế còn dư

  • top rồi quên thoát → chiếm SSH session vô ích. Sửa: nhấn q

  • Coi Use% disk > 90% là chuyện thường — sai, MySQL crash trong vài phút khi Use% > 95%

  • Quên check dmesg khi service tự chết — log OOM killer nằm ở đó, không phải /var/log/syslog

  • Cài htop rồi luôn dùng htop cho mọi việctop -b -n1 còn nhanh hơn cho one-shot

Khi nào upgrade VPS, khi nào chỉ cần dọn dẹp?

Triệu chứngGiải pháp ngayUpgrade nếu
Disk 95%, log đầyjournalctl --vacuum-time=7dVẫn 90% sau dọn → +disk
RAM 95%, swap 80%Restart service ăn RAMLặp lại trong 24h → +RAM
CPU load 2× số coreTìm process bug + restartLặp lại > 3 lần → +CPU
Bandwidth gần limitBật Cloudflare cacheVẫn full sau cache → upgrade plan

💡 Tip cuối: Trước khi upgrade, đo 7 ngày liên tục với vps-status cron — đừng quyết định dựa vào 1 spike.

Key takeaways

  • uptime — 5s biết CPU load

  • free -h — nhìn cột available, không phải free

  • df -h / — báo động khi Use% > 85%

  • vnstat — bandwidth không tự magic, phải cài + đợi

  • vps-status — 1 lệnh ra full report (script trong bài)

  • dmesg | grep killed — phát hiện OOM kill history

  • du -h --max-depth=1 — tìm folder ăn disk nhanh nhất

FAQ

Q: VPS 1GB RAM mà available chỉ còn 100MB, có nên upgrade không?
A: Chưa cần. Restart php-fpm và MySQL → quan sát 24h. Nếu available lại tụt nhanh → upgrade. Nếu ổn định → MySQL/PHP đang cache hợp lý, không cần upgrade.

Q: htop báo 80% RAM nhưng free -h nói còn 600MB — tin cái nào?
A: Tin free -h. htop cộng cả buff/cache vào used nên trông cao. Cột available của free mới đúng.

Q: Có nên cài web panel để monitor cho dễ?
A: Tuỳ. Web panel (cPanel, aaPanel) ăn 200-500MB RAM + dễ exploit. Script vps-status 0 RAM, 0 attack surface. Nếu sếp/khách cần GUI → cài Netdata (free, 50MB RAM, web UI realtime).

Q: Bao lâu check 1 lần?
A: Sau mỗi deploy + trước khi đi ngủ. Setup cron vps-status 6h/lần ghi log + alert Telegram khi vượt ngưỡng — bài tiếp theo hướng dẫn.

Q: VPS RAM 1GB chạy WordPress được không?
A: Đủ cho 1 site WordPress traffic vừa + MySQL + NGINX nếu tune kỹ. Không hợp Docker, Redis, Node.js heavy. Spec đề xuất xem vsis.net/vps.

Cần VPS Linux đủ tài nguyên cho production?

VSIS có VPS Linux từ 99k/tháng (1GB RAM, 25GB SSD), preinstall Ubuntu 24.04 LTS — sẵn sàng chạy script vps-status ngay sau khi nhận thông tin SSH.

👉 Đăng ký VPS Linux: vsis.net/vps

📺 Xem video 60 giây tóm tắt: link Reels (sẽ cập nhật khi đăng FB)

📖 Bài tiếp theo: “Xem ai đang đăng nhập VPS + lịch sử login” — đăng Thứ 6 tuần này.

Lên đầu trang