Skip to content

Repository files navigation

VPSBench

Gaming VPS Performance Benchmark

Made by Salib Technologies

A production-quality CLI tool for benchmarking VPS performance specifically for game-server hosting (Minecraft and similar multiplayer servers).

Quick Start

One-Command Install

Install VPSBench on any supported Linux VPS with one command:

curl -fsSL https://raw.githubusercontent.com/linux-system443/vpsbench/main/install.sh | bash

Then run:

vpsbench quick

Note: The installer requires root/sudo privileges to install system dependencies.

Manual Install

git clone https://github.com/linux-system443/vpsbench.git
cd vpsbench
pip install -e .# Run quick benchmark (~2 minutes)
vpsbench quick
# Run specific benchmarks
vpsbench cpu --duration quick
vpsbench memory
vpsbench disk
vpsbench network
# Save results to JSON
vpsbench --json results.json

Commands

CommandDescriptionDuration
vpsbenchFull benchmark (all categories)~15 min
vpsbench quickQuick benchmark (CPU, memory, disk, network)~2 min
vpsbench cpuCPU only~15s-5min
vpsbench memoryMemory only~3s
vpsbench diskDisk I/O only~10-60s
vpsbench networkNetwork latency/throughput~40s
vpsbench dockerDocker overhead (requires Docker)~30s
vpsbench minecraftMinecraft server perf (requires Docker)~10 min

Options

OptionDescription
--duration quick|normal|fullBenchmark duration profile
--profile gaming|minecraft|generalScoring profile
--json FILESave results to JSON file
--config FILEUse custom config file
--verbose, -vEnable verbose output

What It Measures

CPU

  • Single-core performance (most important for Minecraft)
  • Multi-core throughput
  • Sustained performance (detects throttling)
  • CPU model, cores, threads, affinity, cgroup quota

Memory

  • Read bandwidth (sysbench)
  • Write bandwidth
  • Copy bandwidth
  • Latency

Disk (fio)

  • Sequential read/write (1M blocks)
  • Random 4K read/write IOPS
  • Mixed workload (70/30 read/write)
  • fsync latency

Network

  • Internet / Anycast Latency — ping to major DNS resolvers (Cloudflare, Google, OpenDNS, Quad9)
  • Regional Game Server Latency — ping to fixed endpoints in known geographic locations (optional, configure in config)
  • Jitter (standard deviation)
  • Packet loss
  • Throughput (iperf3, optional)

Docker (optional)

  • Container creation overhead
  • CPU/memory/filesystem overhead
  • Container lifecycle

Minecraft (optional, requires Docker)

  • TPS (ticks per second) stability
  • MSPT (milliseconds per tick)
  • CPU/memory usage under load
  • Simulated player activity

Scoring

Scores are 0-100 with documented reference ranges:

CategoryWeight (Gaming)What It Measures
CPU25%Single-core + multi-core + sustained
Memory10%Bandwidth and latency
Disk25%IOPS, latency, sequential throughput
Network20%Latency, jitter, packet loss
Docker5%Container overhead
Minecraft15%TPS/MSPT under load

Score Ranges

ScoreRating
90-100EXCELLENT
80-89VERY GOOD
70-79GOOD
60-69AVERAGE
0-59POOR

Partial Benchmarks

When only some categories are tested, the report clearly shows:

Status: Partial (3/6 categories)

Gaming Suitability

The tool provides practical interpretation:

Gaming Suitability
Single-core CPU: Strong (score: 77/100)
CPU throttling: None detected (0.0%)
Disk IOPS: Poor (3k random 4K read)
Disk latency: Good (1.51 ms)
Network latency: Excellent (2 ms best)
Recommendation: This VPS may work for small game servers.

Configuration

Create vpsbench.yaml or /etc/vpsbench/config.yaml:

profile: gamingtimeout: 600cpu:
single_core_duration: 10multi_core_duration: 10sustained_duration: 300operations_per_test: 1000000disk:
test_size: "256M"random_numjobs: 2random_iodepth: 16direct_io: truenetwork:
ping_count: 20# Anycast endpoints (always tested)regions:
Cloudflare: "1.1.1.1"Google DNS: "8.8.8.8"OpenDNS: "208.67.222.222"# Regional endpoints (optional, configure with known fixed IPs)# regional_endpoints:# Singapore: "1.2.3.4"# US East: "5.6.7.8"minecraft:
version: "1.21.1"ram: "2G"simulated_player_counts: [0, 5, 10, 20, 30]

JSON Output

{
"version": "1.0.0",
"timestamp": "2026-08-20T07:00:00+00:00",
"duration_seconds": 120.5,
"profile": "gaming",
"system": { "cpu": "AMD EPYC 7443P", "cores": 8, "threads": 8, ... },
"benchmarks": { "cpu": {...}, "memory": {...}, ... },
"scores": {
"cpu": 77, "memory": 100, "disk": 24, "network": 86,
"overall": 72, "classification": "GOOD",
"weights": { "cpu": 0.25, ... }
},
"status": {
"total_categories": 6,
"tested_categories": 4,
"tested": ["cpu", "memory", "disk", "network"],
"is_partial": true
}
}

Dependencies

Required

  • fio — disk I/O testing
  • sysbench — memory testing
  • ping (iputils-ping) — network latency

Optional

  • docker — Docker and Minecraft benchmarks
  • stress-ng — contention testing
  • mtr — route tracing
  • iperf3 — network throughput

Install on Debian/Ubuntu:

sudo apt install fio sysbench iputils-ping stress-ng

Safety

  • Never modifies existing Docker containers
  • Never deletes user data
  • Uses temporary files in /tmp/vpsbench_disk_test/
  • All test files cleaned up after benchmarks
  • Configurable timeouts prevent runaway tests
  • Ctrl+C cleanly stops all benchmarks
  • Disk benchmarks warn about I/O load

Project Structure

vpsbench/
├── src/vpsbench/
│ ├── cli.py # CLI entry point
│ ├── scoring.py # Scoring system
│ ├── report.py # Terminal + JSON reports
│ ├── benchmarks/
│ │ ├── base.py # Base benchmark class
│ │ ├── cpu.py # CPU benchmark
│ │ ├── cpu_detect.py # CPU topology/quota detection
│ │ ├── memory.py # Memory benchmark
│ │ ├── disk.py # Disk benchmark (fio)
│ │ ├── network.py # Network benchmark
│ │ ├── docker.py # Docker benchmark
│ │ ├── minecraft.py # Minecraft benchmark
│ │ └── contention.py # Contention test
│ ├── config/
│ │ ├── defaults.py # Default configuration
│ │ └── loader.py # Config file loader
│ └── utils/
│ ├── dependencies.py # Dependency detection
│ ├── formatting.py # Terminal colors/formatting
│ ├── shell.py # Command execution
│ └── system.py # System info detection
├── tests/ # 183 unit tests
├── config/example.yaml # Example config
├── pyproject.toml # Package config
├── README.md
├── LICENSE
├── INSTALL.md
└── CONTRIBUTING.md

License

MIT License

About

Gaming VPS performance benchmark for CPU, memory, disk, network, Docker and Minecraft.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages