Skip to main content
← All Guides
Hardware · 5 min read

How to Monitor CPU, RAM, and Disk on Your Server

Guide to monitoring Minecraft server resources including CPU usage, RAM consumption, disk I/O, TPS, and network traffic using free tools and in-game commands.

Why Monitoring Matters

A Minecraft server does not crash without warning. TPS drops, RAM creep, disk I/O spikes, and CPU saturation all leave traces before they cause visible lag. If you monitor minecraft server resources proactively, you catch problems before your players notice them. Monitoring also helps you right-size your hardware: are you paying for 16 GB of RAM but only using 6 GB? Is your CPU at 30% or 90%? Data answers these questions.

In-Game Monitoring

Spark

Spark is the best in-game profiling and monitoring plugin for Minecraft. Install the Spark plugin on Paper, Purpur, Fabric, or Forge, and you get:

  • /spark tps to view current TPS and tick time.
  • /spark health to see CPU usage, RAM usage, and disk space.
  • /spark profiler to run a detailed profiler that identifies which plugins, entities, or chunks are consuming the most tick time.
  • /spark heapdump to analyze memory usage and find memory leaks.

Spark generates shareable web reports. When you run /spark profiler --timeout 60, it profiles for 60 seconds and gives you a URL with an interactive flame graph. This is invaluable for diagnosing lag. If you only install one monitoring tool, make it Spark.

Timings (Paper)

Paper includes a built-in timings system. Run /timings on, wait 10 minutes during peak player activity, then run /timings report. This generates a URL with a detailed breakdown of what consumed server tick time. Spark has largely superseded Timings, but it remains a useful second opinion.

Command-Line Monitoring

If you have SSH access to your server (dedicated, VPS, or self-hosted), command-line tools give you real-time visibility into system resources.

htop

Install with sudo apt install htop. Run htop to see:

  • Per-core CPU usage (useful for seeing if the Minecraft main thread is saturating one core)
  • Total RAM and swap usage
  • Process list sorted by CPU or memory consumption

Look for the Java process. If one CPU core is pegged at 100% while others are idle, your server is hitting the single-thread bottleneck. This means you need a faster CPU, not more cores. See our best CPU guide for upgrade options.

iostat

Install with sudo apt install sysstat. Run iostat -x 5 to monitor disk I/O every 5 seconds. Key metrics:

  • %util: How busy the disk is. Above 80% sustained means your disk is a bottleneck.
  • await: Average time in milliseconds for I/O requests. Above 10 ms on an SSD or 2 ms on NVMe indicates a problem.
  • r/s and w/s: Reads and writes per second. Spikes during auto-save are normal.

If your disk is consistently busy, consider upgrading to NVMe. See our storage comparison for details.

vnstat

Install with sudo apt install vnstat. Run vnstat -l for live bandwidth monitoring or vnstat -m for monthly totals. This tells you exactly how much bandwidth minecraft server traffic is consuming and whether you are approaching any caps.

Grafana + Prometheus Stack

For serious monitoring, set up Grafana with Prometheus. This gives you historical graphs, alerting, and dashboards. The setup involves:

  • Prometheus: Scrapes metrics from your server at regular intervals and stores them in a time-series database.
  • node_exporter: Exposes system metrics (CPU, RAM, disk, network) to Prometheus.
  • Minecraft exporter: Plugins like minecraft-prometheus-exporter expose TPS, player count, entity count, and loaded chunks to Prometheus.
  • Grafana: Visualizes Prometheus data in customizable dashboards.

This stack is overkill for a 5-player server but invaluable for larger operations. You can set up alerts (for example, notify on Discord if TPS drops below 18 or RAM usage exceeds 90%) and review historical trends to plan capacity.

Plan Plugin

Plan (Player Analytics) is a Minecraft plugin that tracks player activity, server performance, and resource usage over time. It provides a web dashboard showing TPS history, player sessions, RAM usage trends, and more. It is simpler to set up than the Grafana stack and gives you good enough data for most servers.

Plan stores data in a local SQLite or MySQL database. On busy servers, the database can grow large and impact disk I/O. Monitor minecraft server resources including Plan's own footprint to ensure it is not part of the problem.

See what optimized hardware feels like in game: Astroworld MC, IP play.astroworldmc.com, Java + Bedrock.

What to Watch and When to Act

MetricHealthy RangeAction Threshold
TPS19.5 to 20.0Below 18.0 sustained
CPU (main core)Under 70%Above 85% sustained
RAM (JVM heap)Under 80% of XmxAbove 90% with frequent full GC
Disk I/O %utilUnder 40%Above 70% sustained
Tick timeUnder 40 msAbove 50 ms (TPS drops below 20)

When a metric crosses the action threshold, diagnose the cause before throwing more hardware at it. Use Spark to profile, check entity counts, review plugin performance, and optimize JVM flags (see our flags guide) before upgrading your plan.

Related Tools & Resources

🔧

Minecraft Tools

Calculators, generators & server tools

🧱

Item Database

Browse all Minecraft items, stats & recipes

⚒️

Crafting Recipes

Visual crafting guides for every recipe