Itโs my routine to launch a full benchmark script immediately after receiving a new VPS. I test CPU, memory, disk I/O, network bandwidth and backhaul routing to fully understand its baseline performance before planning its workloads. This habit developed after purchasing several VPS instances with obvious discrepancies between advertised specifications and actual performance.
The recommendations below are ordered by how often I actually use them and how much ground they cover. Not an absolute ranking โ pick based on what you need.
ECS (Fusion Monster): Most Complete Coverage, Best for New Server Acceptance Testing
ECS, widely known in Chinese VPS communities as "่ๅๆช" (Fusion Monster), is the most comprehensive all-in-one benchmark script available for VPS testing. One command covers more ground than most alternatives combined.
bash <(wget -qO- \
https://github.com/spiritLHLS/ecs/raw/main/ecs.sh)
If GitHub access is slow, use the mirror:
bash <(wget -qO- \
https://ecs.ooook.top/ecs.sh)
What it tests: system info (CPU model, core count, memory, disk), virtualization type detection, IPv4/IPv6 connectivity, disk read/write speeds, network bandwidth (upload and download), return path routing (three-network traceroute), streaming unlock detection (Netflix, Disney+, YouTube Premium, and others), and ChatGPT accessibility.
The output is dense the first time you see it, but each module has clear section headers โ once you're used to the layout, finding what you care about takes seconds. For me, the most valuable part is the return path routing section. When I buy a CN2 GIA plan, the routing test tells me whether the traffic is actually taking the optimized path โ not just what the provider's marketing page says.
The script is actively maintained and updates reasonably quickly when new streaming platforms or routing changes need to be accounted for.
Best for: Full acceptance testing on new servers, verifying network route quality, selecting VPS instances for streaming unlock use cases.
LemonBench: Clean Output, Solid CPU and I/O Benchmarking
LemonBench has a different feel from ECS โ cleaner output, heavier focus on hardware performance baselines rather than network diagnostics.
wget -qO- https://ilemonra.in/LemonBenchIntl \
| bash -s fast
For the full version including UnixBench (takes longer):
wget -qO- https://ilemonra.in/LemonBenchIntl \
| bash -s full
Test coverage: CPU single-core and multi-core performance via sysbench, memory read/write speeds, sequential and random disk I/O, network speed tests across domestic and international nodes, and UnixBench composite score in full mode.
UnixBench is a long-established Linux performance benchmark, and its scores hold up as a meaningful reference when comparing servers against each other. If you're evaluating multiple VPS instances side-by-side, LemonBench's output format is clean enough to screenshot and archive. The downside is that it has no return path routing tests and no streaming unlock detection โ the network diagnostic layer is thinner than ECS.
Best for: CPU and I/O performance baselines, cross-server comparisons, situations where a UnixBench score is specifically needed.
NodeBench: Fast Execution, Good for Quick Initial Assessment
NodeBench is built for speed. It runs noticeably faster than either of the above, which makes it well-suited for quick gut-check testing or light verification before committing to a server.
bash <(wget -qO- \
https://raw.githubusercontent.com/LloydAsp/NodeBench/main/NodeBench.sh)
Test coverage: basic CPU information and performance, memory and disk I/O, network bandwidth across domestic and international nodes, basic connectivity checks.
Less depth than ECS or LemonBench, but the speed advantage is real. During flash sale seasons when you're running through a batch of machines quickly to figure out which ones are worth keeping, NodeBench is the more practical tool. It won't tell you everything, but it tells you enough, fast.
Best for: Quick verification, basic performance checks, batch testing multiple servers efficiently.
bench.sh: The Veteran, Best Compatibility
bench.sh has been around for years. It runs on essentially every Linux distribution you'll encounter, and the command couldn't be simpler:
wget -qO- bench.sh | bash
Or:
curl -Lso- bench.sh | bash
Test coverage: system basic info, disk read/write speeds, network bandwidth across multiple speed test nodes.
The feature set is minimal โ no return path routing, no streaming detection, no IPv6 testing, no CPU performance benchmarks. But compatibility is where bench.sh has everyone else beat. Older or stripped-down system environments that cause other scripts to fail will usually run bench.sh without issue. I reach for it now when the environment has constraints, other scripts aren't cooperating, or I just need a quick disk I/O and bandwidth number without any ceremony.
Best for: Older or minimal system environments, bare-bones quick checks, fallback when other scripts fail to execute.
Feature Comparison
| Feature | ECS (Fusion Monster) | LemonBench | NodeBench | bench.sh |
|---|---|---|---|---|
| CPU performance test | โ | โ | โ | โ |
| Disk I/O | โ | โ | โ | โ |
| Network bandwidth | โ | โ | โ | โ |
| Return path routing | โ | โ | โ | โ |
| Streaming unlock detection | โ | โ | โ | โ |
| IPv6 detection | โ | โ | โ | โ |
| UnixBench score | โ | โ (full mode) | โ | โ |
| Execution speed | Slow (feature-heavy) | Medium | Fast | Fastest |
| Compatibility | Good | Good | Good | Best |
| Maintenance activity | High | Medium | Medium | Low |
Script Selection by Use Case
| Scenario | Recommended Script |
|---|---|
| Full acceptance test on a new VPS | ECS (Fusion Monster) |
| Verifying CN2 GIA / AS9929 routing | ECS (Fusion Monster) |
| Selecting a server for streaming use | ECS (Fusion Monster) |
| CPU / I/O performance baseline comparison | LemonBench |
| Need a UnixBench score | LemonBench |
| Quick check across multiple servers | NodeBench |
| Older or stripped-down system environment | bench.sh |
| Other scripts failing to run | bench.sh |
A Few Things to Know Before Running These
Scripts pull from GitHub, which can be slow or inconsistent from mainland China. ECS provides a mirror URL โ worth bookmarking alongside the primary command.
Running the tests generates outbound traffic. For metered bandwidth plans, it's worth checking how much headroom you have first. Most scripts don't consume much, but the network speed test phase in LemonBench full mode uses a bit more than the others.
Disk I/O tests perform read/write operations on the drive. Fine on a freshly provisioned server, but think twice before running during peak hours on a production machine.
Return path routing tests require the traceroute utility. Most Linux distributions include it by default, but if you get a "command not found" error:
# Debian / Ubuntu
apt install traceroute -y
# CentOS / Rocky Linux
yum install traceroute -y
How I Actually Use These
New server arrives: ECS first, always. Routing, streaming unlock, baseline performance โ one pass covers the full picture. If the machine is going to do compute-heavy work, I follow up with LemonBench to get a UnixBench score for comparison against other servers. Beyond that, ECS alone is usually enough.
bench.sh lives in my command history as a backup. I don't reach for it often, but it runs in environments the others won't, and having it ready costs nothing.