Skip to main content

Performance & Optimization

SigmaTools is designed with performance in mind, using async operations and intelligent throttling.

Performance Featuresโ€‹

Async Operationsโ€‹

  • Block operations run asynchronously
  • Doesn't block main server thread
  • Maintains server TPS

Per-Tick Limitsโ€‹

  • Limits blocks processed per server tick
  • Prevents server overload
  • Configurable per tool

Dynamic Throttlingโ€‹

  • Monitors server TPS
  • Automatically reduces performance when lagging
  • Maintains server stability

Queue Managementโ€‹

  • Global queue limits
  • Per-player queue limits
  • Prevents memory issues

Configurationโ€‹

Per-Tick Limitsโ€‹

tools:
pickaxe:
per-tick-limit: 20 # Blocks per tick

Global Limitsโ€‹

general:
global-concurrent-cap: 50 # Max concurrent operations
max-global-queue-size: 1000 # Max queue size
max-player-queue-size: 100 # Max per player

Dynamic Throttlingโ€‹

performance:
dynamic-throttle:
enabled: true
tps-threshold: 18.0 # Start throttling below this TPS
reduction-factor: 0.5 # Reduce to 50% when throttling

Performance Tuningโ€‹

Small Servers (< 20 players)โ€‹

general:
global-concurrent-cap: 25
max-global-queue-size: 500

tools:
pickaxe:
per-tick-limit: 15
max-blocks-per-use: 50

Medium Servers (20-50 players)โ€‹

general:
global-concurrent-cap: 50
max-global-queue-size: 1000

tools:
pickaxe:
per-tick-limit: 20
max-blocks-per-use: 80

Large Servers (50+ players)โ€‹

general:
global-concurrent-cap: 100
max-global-queue-size: 2000

tools:
pickaxe:
per-tick-limit: 25
max-blocks-per-use: 100

Monitoringโ€‹

Check Performanceโ€‹

/sigmatools debug queue
/sigmatools debug ops

Enable Performance Debuggingโ€‹

debug:
performance: true

Best Practicesโ€‹

  1. Start Conservative - Use lower limits initially
  2. Monitor TPS - Watch server performance
  3. Enable Throttling - Let plugin adjust automatically
  4. Adjust Gradually - Increase limits if needed

Troubleshootingโ€‹

Server Lagโ€‹

  1. Reduce per-tick-limit
  2. Reduce global-concurrent-cap
  3. Enable dynamic throttling
  4. Reduce max-blocks-per-use

High Memory Usageโ€‹

  1. Reduce max-global-queue-size
  2. Reduce max-player-queue-size
  3. Check for memory leaks
  4. Monitor queue sizes

Next Stepsโ€‹