Quick-check a VPS's specs with a single command
A one-line bash script that checks a VPS's OS, CPU, RAM, disk and network in about 15 seconds, plus reference tables that tell you whether each number is weak, fine or strong.
On this page
- Quick reference
- Step by step
- 1. Run the script
- 2. Read the results
- 3. Understand the scoring
- VPS spec reference tables
- CPU
- RAM
- Disk
- Network
- Suggested specs by use case
- Troubleshooting
- curl: command not found
- bc: command not found (affects the Disk I/O rating)
- Download speed shows "Không test được" (could not test)
- Disk I/O results look inaccurate
When you have just bought or been handed a VPS, you want to know quickly how capable it
is. The vps-check.sh bash script checks every key spec (OS, CPU, RAM, disk, network)
with a single command, prints a colorized report, and rates each section
automatically: Good / Needs attention / Problem.
Throughout, replace <username> and <server-ip> with your own user and VPS IP.
Quick reference
The fastest way - paste this into the terminal of any VPS:
curl -sL https://vuhai.io.vn/scripts/vps-check.sh | bashcurl ... | bash runs a script straight off the internet. Make a habit of reading a
script before you run it: use the "download, then run" option below and inspect the
file with less ~/vps-check.sh first, especially on production servers.
Or download it, then run it:
curl -sL https://vuhai.io.vn/scripts/vps-check.sh -o ~/vps-check.sh
chmod +x ~/vps-check.sh
bash ~/vps-check.shCopy it to another VPS (if you already have the file):
scp ~/vps-check.sh <username>@<server-ip>:~/vps-check.sh
ssh <username>@<server-ip> "bash ~/vps-check.sh"Step by step
1. Run the script
SSH into the VPS you want to check, then run the one-liner:
curl -sL https://vuhai.io.vn/scripts/vps-check.sh | bashThe script scans for about 15 seconds and then prints the results.
2. Read the results
The script reports 6 main sections:
| # | Section | What it checks |
|---|---|---|
| 1 | Operating system | OS, kernel, uptime, virtualization type |
| 2 | CPU | Model, vCPU count, frequency, load average |
| 3 | RAM | Total/used/free, swap, % used |
| 4 | Disk | Capacity, filesystem, write speed (64MB benchmark) |
| 5 | Network | IP, datacenter location, provider, download speed, ping |
| 6 | Summary | Overview table + overall score out of 6 |
3. Understand the scoring
Each section is rated automatically with an icon and a color:
- Green - Good, nothing to worry about
- Yellow - Needs attention, keep an eye on it
- Red - Problem, needs fixing
The overall score out of 6 is based on 6 criteria: CPU load, RAM, Disk, Swap, Network speed, Ping.
VPS spec reference tables
CPU
| Metric | Weak | Average | Good | Strong |
|---|---|---|---|---|
| vCPU | 1 vCPU | 2 vCPU | 4 vCPU | 8+ vCPU |
| Load (% of vCPU count) | > 80% | 50-80% | 20-50% | < 20% |
| Frequency | < 1.5 GHz | 1.5-2.5 GHz | 2.5-3.5 GHz | > 3.5 GHz |
Reading load: a load of 1.0 on a 1 vCPU VPS = 100% utilization. A load of 2.0 on a 4 vCPU VPS = 50% utilization (2/4). Ideally load stays below 70% of your vCPU count.
RAM
| Metric | Weak | Average | Good | Strong |
|---|---|---|---|---|
| Total RAM | 512MB | 1-2 GB | 4-8 GB | 16+ GB |
| % used | > 80% | 50-80% | 30-50% | < 30% |
| Swap | None | < 1 GB | 1-2 GB | 2+ GB |
Running with no swap is dangerous: when RAM runs out, the system OOM-kills processes. Create swap equal to at least 50% of your RAM.
Disk
| Metric | Weak | Average | Good | Strong |
|---|---|---|---|---|
| Capacity | < 20 GB | 20-40 GB | 40-80 GB | 100+ GB |
| % used | > 85% | 60-85% | 30-60% | < 30% |
| Write speed | < 80 MB/s (HDD) | 80-200 MB/s (entry-level SSD) | 200-500 MB/s (good SSD) | > 500 MB/s (NVMe) |
Making sense of disk I/O: an HDD is usually under 100 MB/s. A SATA SSD does about 200-500 MB/s. An NVMe SSD goes above 500 MB/s and can reach 2-3 GB/s.
Network
| Metric | Weak | Average | Good | Strong |
|---|---|---|---|---|
| Download | < 30 Mbps | 30-100 Mbps | 100-500 Mbps | > 500 Mbps |
| Ping (Google DNS) | > 100 ms | 50-100 ms | 10-50 ms | < 10 ms |
Ping depends on the datacenter location: a VPS in Singapore pings Vietnam in about 20-40 ms, one in the US about 150-200 ms. Pick the datacenter closest to your users.
Suggested specs by use case
| Use case | vCPU | RAM | Disk | Notes |
|---|---|---|---|---|
| Blog / Landing page | 1 | 1 GB | 20 GB | Nginx + static site |
| Small app (Node/Python) | 1-2 | 2 GB | 30 GB | + 1GB swap |
| Web app + Database | 2-4 | 4 GB | 40-80 GB | PostgreSQL needs RAM |
| Production (many users) | 4-8 | 8-16 GB | 80-160 GB | + Redis cache |
| CI/CD / Build server | 4+ | 8+ GB | 100+ GB | CPU-intensive |
Troubleshooting
curl: command not found
# Ubuntu/Debian
apt update && apt install -y curl
# CentOS/RHEL
yum install -y curlbc: command not found (affects the Disk I/O rating)
# Ubuntu/Debian
apt install -y bc
# CentOS/RHEL
yum install -y bcDownload speed shows "Không test được" (could not test)
Cause: a firewall is blocking outbound HTTPS. Check with:
curl -s --connect-timeout 5 https://speed.cloudflare.com/__down?bytes=1000If nothing comes back -> open outbound port 443, or check iptables/firewalld.
Disk I/O results look inaccurate
The script only writes a 64MB test file - it is a quick benchmark, not a replacement for a dedicated tool. For a more accurate benchmark:
# Test with fio (needs to be installed separately)
fio --name=test --ioengine=libaio --rw=write --bs=1M --size=256M --numjobs=1 --runtime=10 --direct=1