Module auto_tuner

Module auto_tuner 

Source
Expand description

Automatic network configuration tuning based on system resources and usage patterns.

This module provides intelligent auto-tuning capabilities that analyze system resources, network conditions, and usage patterns to automatically optimize network configuration for optimal performance.

§Features

  • System Resource Analysis: Detect available CPU, memory, and network bandwidth
  • Workload Detection: Identify whether the node is bandwidth-limited, CPU-limited, or memory-limited
  • Dynamic Reconfiguration: Adjust settings in real-time based on observed performance
  • Profile-based Tuning: Support for different use case profiles (server, mobile, IoT, etc.)
  • Performance Monitoring: Track key metrics to guide tuning decisions

§Example

use ipfrs_network::{NetworkConfig, auto_tuner::AutoTuner};

// Create auto-tuner with default settings
let mut tuner = AutoTuner::new();

// Analyze system and generate optimized configuration
let config = tuner.generate_config().await?;
println!("Optimized config generated with {:?} max connections", config.max_connections);

// Continuously monitor and adjust
tuner.start_monitoring().await?;

Structs§

AutoTuner
Automatic network configuration tuner
AutoTunerConfig
Configuration for the auto-tuner
AutoTunerStats
Statistics tracked by the auto-tuner
SystemResources
System resource information detected by the auto-tuner
WorkloadProfile
Workload characteristics detected during runtime

Enums§

AutoTunerError
Errors that can occur during auto-tuning operations