Server Sizing Guide

Hardware requirements and resource planning for GAPE.

GAPE Resource Usage

Base Overhead

  • Per-packet processing: 300-500 nanoseconds
  • Memory per player: ~1KB (violation tracking + rate limits)
  • CPU cores: Async mode uses 1-2 cores depending on thread pool
  • Disk I/O: Minimal (batch writes for logs/database)

Scalability

GAPE scales linearly with player count:

  • 100 players: ~100KB memory, negligible CPU
  • 500 players: ~500KB memory, 0.5-1 core in async mode
  • 1000 players: ~1MB memory, 1-2 cores in async mode

Minimum Requirements

Small Server (1-50 Players)

  • CPU: 2 cores @ 2.5GHz
  • RAM: 2GB total (Minecraft + GAPE)
  • Disk: 10GB SSD
  • Network: 10 Mbps

GAPE adds negligible overhead at this scale.

Medium Server (50-200 Players)

  • CPU: 4 cores @ 3.0GHz
  • RAM: 4-6GB total
  • Disk: 50GB SSD
  • Network: 50 Mbps

Enable async mode with 4-thread pool.

Large Server (200-500 Players)

  • CPU: 8 cores @ 3.5GHz
  • RAM: 8-12GB total
  • Disk: 100GB NVMe SSD
  • Network: 100 Mbps

Async mode with 8-thread pool, MySQL database.

Extra-Large Server (500-1000+ Players)

  • CPU: 16+ cores @ 4.0GHz+
  • RAM: 16-32GB total
  • Disk: 250GB+ NVMe SSD
  • Network: 250+ Mbps

Async mode with 12-16 thread pool, dedicated MySQL server.

Recommended Specifications

Budget Server (1-50 Players)

  • CPU: 3 cores @ 3.0GHz
  • RAM: 4GB
  • Disk: 20GB SSD
  • Cost: $5-10/month VPS

Standard Server (50-200 Players)

  • CPU: 6 cores @ 3.5GHz
  • RAM: 8GB
  • Disk: 80GB NVMe SSD
  • Cost: $20-40/month VPS or dedicated

High-Performance Server (200-500 Players)

  • CPU: 12 cores @ 4.0GHz
  • RAM: 16GB
  • Disk: 200GB NVMe SSD
  • Cost: $60-120/month dedicated

Enterprise Server (500-1000+ Players)

  • CPU: 24+ cores @ 4.5GHz+
  • RAM: 32-64GB
  • Disk: 500GB+ NVMe SSD (RAID for redundancy)
  • Cost: $150-500+/month dedicated

Configuration by Server Size

1-50 Players

  • Async mode: Disabled
  • Thread pool: N/A
  • Cache size: 100-500 entries
  • Database: SQLite, batch writes every 60s
  • Logging: File only, threshold mode
  • All checks: Enabled with default settings

50-200 Players

  • Async mode: Enabled
  • Thread pool: 4-6 threads
  • Cache size: 500-1000 entries
  • Database: SQLite or MySQL, batch writes every 30s
  • Logging: Async file writes, daily rotation
  • All checks: Enabled, moderate thresholds

200-500 Players

  • Async mode: Enabled
  • Thread pool: 8-12 threads
  • Cache size: 2000-5000 entries
  • Database: MySQL, batch writes every 15s
  • Logging: Async, compressed, hourly rotation
  • All checks: Enabled, balanced thresholds

500-1000+ Players

  • Async mode: Enabled
  • Thread pool: 12-16 threads
  • Cache size: 5000-10000 entries
  • Database: Dedicated MySQL server, batch writes every 10s
  • Logging: Async, compressed, aggressive cleanup
  • All checks: Enabled, optimized for high throughput

Network Bandwidth

GAPE's Network Impact

GAPE doesn't generate network traffic - it only inspects existing packets. However, your server needs bandwidth for:

  • Player connections: ~50-100 KB/s per player average
  • Peak activity: Can spike to 200-300 KB/s per player
  • Attacks: Packet floods can consume 1-10 MB/s per attacker

Bandwidth Requirements

  • 50 players: 10-25 Mbps
  • 100 players: 25-50 Mbps
  • 500 players: 100-250 Mbps
  • 1000 players: 250-500 Mbps

Storage Requirements

GAPE's Disk Usage

  • Plugin JAR: ~2-5MB
  • Config files: ~50KB
  • Violation logs: 1-100MB depending on server size and retention
  • Database: 10-500MB depending on retention period

Log Growth Rates

  • Small server: 1-5MB per day
  • Medium server: 5-20MB per day
  • Large server: 20-100MB per day
  • During attack: Can spike to 500MB+ per day

Storage Recommendations

  • SSD minimum (NVMe preferred for 200+ players)
  • Enable log compression to save 80-90% space
  • 7-14 day log retention is usually sufficient
  • Archive old logs to slower/cheaper storage

Hosting Provider Recommendations

Budget Hosting (1-50 Players)

  • Shared Minecraft hosting (BisectHosting, Apex, etc.)
  • VPS providers (OVH, Hetzner, DigitalOcean)
  • $5-15/month

Performance Hosting (50-200 Players)

  • Dedicated Minecraft hosting (Sparked Host, EnviroMC)
  • High-frequency VPS (Bloom.host, Pebblehost)
  • Budget dedicated servers (OVH, Hetzner)
  • $20-60/month

Enterprise Hosting (200+ Players)

  • Dedicated servers (Hetzner, OVH, Psychz)
  • Enterprise Minecraft hosting (EnviroMC, Sparked)
  • Custom hardware in datacenter
  • $80-300+/month

Scaling Considerations

Vertical Scaling

Upgrade existing server hardware:

  • Pros: Simple, no architecture changes
  • Cons: Limited by single-server capacity
  • Good for: Up to 500-800 players

Horizontal Scaling

Add multiple servers behind proxy:

  • Pros: Unlimited scaling potential
  • Cons: Complex, requires BungeeCord/Velocity
  • Good for: 500+ players
  • GAPE note: Install on each backend server

Cost Analysis

Monthly Costs by Server Size

Players Budget Recommended High-Performance
1-50 $5-10 $10-20 $20-40
50-200 $15-30 $30-60 $60-100
200-500 $40-80 $80-150 $150-250
500-1000 $100-200 $200-400 $400-800

Future-Proofing

Planning for Growth

  • Start with 2x current player count capacity
  • Monitor resource usage trends
  • Scale before reaching 80% capacity
  • Keep 20-30% headroom for traffic spikes

When to Upgrade

  • CPU: Consistent 80%+ usage during peak
  • RAM: Using 85%+ of available memory
  • TPS: Dropping below 19.5 regularly
  • Network: 70%+ bandwidth utilization
Tip: GAPE's overhead is minimal. Size your server for Minecraft's requirements first - GAPE will run fine on hardware that can handle your player count.