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§
- Auto
Tuner - Automatic network configuration tuner
- Auto
Tuner Config - Configuration for the auto-tuner
- Auto
Tuner Stats - Statistics tracked by the auto-tuner
- System
Resources - System resource information detected by the auto-tuner
- Workload
Profile - Workload characteristics detected during runtime
Enums§
- Auto
Tuner Error - Errors that can occur during auto-tuning operations