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