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