# CPU and Memory Usage

# Core Engine Components

# Engine CPU Utilization

The Nekuti Matching Engine is designed for high-performance, low-latency trading operations. Here are the key points regarding CPU usage:

# Production Mode Characteristics

  • Utilizes 4 CPU cores at 100% capacity
  • Employs spin-waiting on I/O operations to minimize latency
  • Optimized for core trading operations:
    • Network reads/writes to gateways
    • Command persistence
    • Command execution

# Performance Considerations

  • CPU cache can become a bottleneck under high load
  • Recommended hardware: Modern x86 processor with large CPU cache
  • Performance can be further optimized for specific use cases and traffic patterns
  • Contact our team for assistance with custom optimization

# Engine Memory Usage

Memory consumption varies significantly based on several factors:

# Baseline Requirements

  • Minimal configuration (no instruments, no order flow): ~200 MB RAM
  • Production environment: Variable, potentially several gigabytes

# Scaling Factors

Memory usage scales with:

  • Number of active instruments
  • Market structure complexity
  • Trading volume
  • Order repository purge frequency

# Real-world Example

A typical production deployment processing:

  • 10 million orders per day
  • 10 instruments
  • Consumes approximately 4 GB RAM

# Snapshotter Resource Usage

The snapshotter component is responsible for state persistence and operates with the following characteristics:

# Processing Model

  • Single-threaded execution
  • Periodic command file processing
  • Dormant between snapshot generations

# Resource Consumption

  • Memory footprint: Equivalent to the engine (~200 MB minimum)
  • CPU: Single thread utilization during active snapshots
  • Idle resource consumption is minimal during dormant periods

# Edge Components

# Gateway Resource Requirements

The Control Gateway and User Gateway serve as edge nodes providing REST and WebSocket APIs through Swagger and Glassfish Grizzly.

# Memory Usage

  • Minimal deployment: 1 GB RAM per gateway
  • High-traffic deployment: 4-8 GB RAM per gateway
  • User Gateway may require additional memory for handling hostile internet traffic

# Scaling Considerations

Gateway resource consumption scales with:

  • Number of concurrent connections
  • Request frequency
  • Payload sizes
  • Authentication and validation overhead

# Performance Optimization Tips

For optimal performance, consider these factors:

  • Monitor CPU, I/O and Memory pressure
  • Adjusting order repository purge frequency based on memory constraints
  • Hardware selection focusing on CPU cache size
  • Performance profiling under expected load conditions
  • Gateway memory allocation based on expected traffic patterns