Skip to main content

Module performance

Module performance 

Source
Expand description

High-performance server optimizations for maximum RPS throughput

This module provides a comprehensive suite of performance optimization tools designed to maximize request-per-second (RPS) throughput in high-traffic web server scenarios. It includes TCP socket optimization, connection pooling, request caching, and detailed performance metrics collection.

§Features

  • Socket-level optimizations: SO_REUSEPORT, TCP_NODELAY, custom buffer sizes
  • Connection optimization: Keep-alive tuning, backlog configuration
  • Response caching: Fast-path processing for frequently requested resources
  • Performance metrics: Real-time RPS tracking, response time percentiles
  • Resource management: Efficient cleanup and memory usage monitoring

§Performance Configurations

The module provides several pre-configured performance profiles:

  • Max RPS: Optimized for absolute maximum throughput
  • High Throughput API: Balanced performance for API servers
  • Memory Constrained: Optimized for limited memory environments

§Examples

§Basic Usage

use crate::server::performance::{PerformanceConfig, OptimizedTcpListener};
use std::net::SocketAddr;

let config = PerformanceConfig::max_rps();
let addr = "127.0.0.1:8080".parse::<SocketAddr>().unwrap();
let listener = OptimizedTcpListener::bind(addr, config).await?;

// Accept optimized connections
let (stream, remote_addr) = listener.accept().await?;

§Custom Configuration

use crate::server::performance::PerformanceConfig;
use std::time::Duration;

let config = PerformanceConfig {
    reuse_port: true,
    tcp_nodelay: true,
    backlog: 16384,
    send_buffer_size: Some(1024 * 1024), // 1MB
    recv_buffer_size: Some(512 * 1024),  // 512KB
    keep_alive: Some(Duration::from_secs(30)),
    fast_path: true,
    zero_copy: true,
    ..Default::default()
};

§Performance Monitoring

use crate::server::performance::PerformanceMetrics;

let metrics = PerformanceMetrics::new();

// Record request completion
metrics.record_request(response_time);

// Get current metrics
let current_rps = metrics.current_rps();
let avg_time = metrics.avg_response_time();
let p95_time = metrics.p95_response_time();

Structs§

FastPathProcessor
Fast-path request processor for high RPS scenarios
OptimizedTcpListener
High-performance TCP listener with socket-level optimizations
PerformanceConfig
Performance configuration for high-RPS scenarios
PerformanceMetrics
High-performance metrics collection for monitoring server performance