refactor sysmonitor config (#29132)
This commit is contained in:
parent
f339854504
commit
ca5d8c4b4d
|
@ -385,25 +385,20 @@ fn parse_disk_stats(reader_diskstats: &mut impl BufRead) -> Result<DiskStats, St
|
|||
Ok(stats)
|
||||
}
|
||||
|
||||
pub struct SystemMonitorStatsReportConfig {
|
||||
pub report_os_memory_stats: bool,
|
||||
pub report_os_network_stats: bool,
|
||||
pub report_os_cpu_stats: bool,
|
||||
pub report_os_disk_stats: bool,
|
||||
}
|
||||
|
||||
impl SystemMonitorService {
|
||||
pub fn new(
|
||||
exit: Arc<AtomicBool>,
|
||||
report_os_memory_stats: bool,
|
||||
report_os_network_stats: bool,
|
||||
report_os_cpu_stats: bool,
|
||||
report_os_disk_stats: bool,
|
||||
) -> Self {
|
||||
pub fn new(exit: Arc<AtomicBool>, config: SystemMonitorStatsReportConfig) -> Self {
|
||||
info!("Starting SystemMonitorService");
|
||||
let thread_hdl = Builder::new()
|
||||
.name("solSystemMonitr".to_string())
|
||||
.spawn(move || {
|
||||
Self::run(
|
||||
exit,
|
||||
report_os_memory_stats,
|
||||
report_os_network_stats,
|
||||
report_os_cpu_stats,
|
||||
report_os_disk_stats,
|
||||
);
|
||||
Self::run(exit, config);
|
||||
})
|
||||
.unwrap();
|
||||
|
||||
|
@ -967,13 +962,7 @@ impl SystemMonitorService {
|
|||
)
|
||||
}
|
||||
|
||||
pub fn run(
|
||||
exit: Arc<AtomicBool>,
|
||||
report_os_memory_stats: bool,
|
||||
report_os_network_stats: bool,
|
||||
report_os_cpu_stats: bool,
|
||||
report_os_disk_stats: bool,
|
||||
) {
|
||||
pub fn run(exit: Arc<AtomicBool>, config: SystemMonitorStatsReportConfig) {
|
||||
let mut udp_stats = None;
|
||||
let mut disk_stats = None;
|
||||
let network_limits_timer = AtomicInterval::default();
|
||||
|
@ -986,7 +975,7 @@ impl SystemMonitorService {
|
|||
if exit.load(Ordering::Relaxed) {
|
||||
break;
|
||||
}
|
||||
if report_os_network_stats {
|
||||
if config.report_os_network_stats {
|
||||
if network_limits_timer.should_update(SAMPLE_INTERVAL_OS_NETWORK_LIMITS_MS) {
|
||||
Self::check_os_network_limits();
|
||||
}
|
||||
|
@ -994,13 +983,13 @@ impl SystemMonitorService {
|
|||
Self::process_net_stats(&mut udp_stats);
|
||||
}
|
||||
}
|
||||
if report_os_memory_stats && mem_timer.should_update(SAMPLE_INTERVAL_MEM_MS) {
|
||||
if config.report_os_memory_stats && mem_timer.should_update(SAMPLE_INTERVAL_MEM_MS) {
|
||||
Self::report_mem_stats();
|
||||
}
|
||||
if report_os_cpu_stats && cpu_timer.should_update(SAMPLE_INTERVAL_CPU_MS) {
|
||||
if config.report_os_cpu_stats && cpu_timer.should_update(SAMPLE_INTERVAL_CPU_MS) {
|
||||
Self::report_cpu_stats();
|
||||
}
|
||||
if report_os_disk_stats && disk_timer.should_update(SAMPLE_INTERVAL_DISK_MS) {
|
||||
if config.report_os_disk_stats && disk_timer.should_update(SAMPLE_INTERVAL_DISK_MS) {
|
||||
Self::process_disk_stats(&mut disk_stats);
|
||||
}
|
||||
sleep(SLEEP_INTERVAL);
|
||||
|
|
|
@ -18,7 +18,9 @@ use {
|
|||
sigverify,
|
||||
snapshot_packager_service::SnapshotPackagerService,
|
||||
stats_reporter_service::StatsReporterService,
|
||||
system_monitor_service::{verify_net_stats_access, SystemMonitorService},
|
||||
system_monitor_service::{
|
||||
verify_net_stats_access, SystemMonitorService, SystemMonitorStatsReportConfig,
|
||||
},
|
||||
tower_storage::TowerStorage,
|
||||
tpu::{Tpu, TpuSockets, DEFAULT_TPU_COALESCE_MS},
|
||||
tvu::{Tvu, TvuConfig, TvuSockets},
|
||||
|
@ -494,10 +496,12 @@ impl Validator {
|
|||
|
||||
let system_monitor_service = Some(SystemMonitorService::new(
|
||||
Arc::clone(&exit),
|
||||
!config.no_os_memory_stats_reporting,
|
||||
!config.no_os_network_stats_reporting,
|
||||
!config.no_os_cpu_stats_reporting,
|
||||
!config.no_os_disk_stats_reporting,
|
||||
SystemMonitorStatsReportConfig {
|
||||
report_os_memory_stats: !config.no_os_memory_stats_reporting,
|
||||
report_os_network_stats: !config.no_os_network_stats_reporting,
|
||||
report_os_cpu_stats: !config.no_os_cpu_stats_reporting,
|
||||
report_os_disk_stats: !config.no_os_disk_stats_reporting,
|
||||
},
|
||||
));
|
||||
|
||||
let (poh_timing_point_sender, poh_timing_point_receiver) = unbounded();
|
||||
|
|
|
@ -25,7 +25,8 @@ use {
|
|||
},
|
||||
solana_cli_output::{CliAccount, CliAccountNewConfig, OutputFormat},
|
||||
solana_core::{
|
||||
system_monitor_service::SystemMonitorService, validator::move_and_async_delete_path,
|
||||
system_monitor_service::{SystemMonitorService, SystemMonitorStatsReportConfig},
|
||||
validator::move_and_async_delete_path,
|
||||
},
|
||||
solana_entry::entry::Entry,
|
||||
solana_geyser_plugin_manager::geyser_plugin_service::GeyserPluginService,
|
||||
|
@ -2690,10 +2691,12 @@ fn main() {
|
|||
arg_matches.is_present("no_os_memory_stats_reporting");
|
||||
let system_monitor_service = SystemMonitorService::new(
|
||||
Arc::clone(&exit_signal),
|
||||
!no_os_memory_stats_reporting,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
SystemMonitorStatsReportConfig {
|
||||
report_os_memory_stats: !no_os_memory_stats_reporting,
|
||||
report_os_network_stats: false,
|
||||
report_os_cpu_stats: false,
|
||||
report_os_disk_stats: false,
|
||||
},
|
||||
);
|
||||
|
||||
accounts_index_config.index_limit_mb = if let Some(limit) =
|
||||
|
|
Loading…
Reference in New Issue