From cd77bb991d023e7edfff698832832b9869b79339 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 19 Jun 2024 12:32:56 +0300 Subject: [PATCH] Update sysinfo crate --- Cargo.lock | 20 +++++++++----------- Cargo.toml | 2 +- libs/vm_monitor/src/lib.rs | 5 +++-- pageserver/src/tenant/mgr.rs | 8 ++++---- 4 files changed, 17 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cf8a0b3286..46c15c14ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2877,9 +2877,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.150" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libloading" @@ -4493,9 +4493,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.7.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -4503,14 +4503,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] @@ -5928,9 +5926,9 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.29.7" +version = "0.30.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "165d6d8539689e3d3bc8b98ac59541e1f21c7de7c85d60dc80e43ae0ed2113db" +checksum = "732ffa00f53e6b2af46208fba5718d9662a421049204e156328b66791ffa15ae" dependencies = [ "cfg-if", "core-foundation-sys", @@ -5938,7 +5936,7 @@ dependencies = [ "ntapi", "once_cell", "rayon", - "winapi", + "windows 0.52.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 8fddaaef12..e7e7deb26b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -144,7 +144,7 @@ rustls = "0.22" rustls-pemfile = "2" rustls-split = "0.3" scopeguard = "1.1" -sysinfo = "0.29.2" +sysinfo = "0.30.12" sd-notify = "0.4.1" sentry = { version = "0.32", default-features = false, features = ["backtrace", "contexts", "panic", "rustls", "reqwest" ] } serde = { version = "1.0", features = ["derive"] } diff --git a/libs/vm_monitor/src/lib.rs b/libs/vm_monitor/src/lib.rs index 89ca91fdd7..e5ec9fbb4b 100644 --- a/libs/vm_monitor/src/lib.rs +++ b/libs/vm_monitor/src/lib.rs @@ -11,7 +11,7 @@ use axum::{routing::get, Router, Server}; use clap::Parser; use futures::Future; use std::{fmt::Debug, time::Duration}; -use sysinfo::{RefreshKind, System, SystemExt}; +use sysinfo::{MemoryRefreshKind, RefreshKind, System}; use tokio::{sync::broadcast, task::JoinHandle}; use tokio_util::sync::CancellationToken; use tracing::{error, info}; @@ -64,7 +64,8 @@ pub fn bytes_to_mebibytes(bytes: u64) -> f32 { } pub fn get_total_system_memory() -> u64 { - System::new_with_specifics(RefreshKind::new().with_memory()).total_memory() + System::new_with_specifics(RefreshKind::new().with_memory(MemoryRefreshKind::new().with_ram())) + .total_memory() } /// Global app state for the Axum server diff --git a/pageserver/src/tenant/mgr.rs b/pageserver/src/tenant/mgr.rs index 4520bb9295..8ec17f7646 100644 --- a/pageserver/src/tenant/mgr.rs +++ b/pageserver/src/tenant/mgr.rs @@ -18,7 +18,6 @@ use std::collections::{BTreeMap, HashMap}; use std::ops::Deref; use std::sync::Arc; use std::time::Duration; -use sysinfo::SystemExt; use tokio::fs; use anyhow::Context; @@ -484,9 +483,10 @@ pub async fn init_tenant_mgr( let ctx = RequestContext::todo_child(TaskKind::Startup, DownloadBehavior::Warn); // Initialize dynamic limits that depend on system resources - let system_memory = - sysinfo::System::new_with_specifics(sysinfo::RefreshKind::new().with_memory()) - .total_memory(); + let system_memory = sysinfo::System::new_with_specifics( + sysinfo::RefreshKind::new().with_memory(sysinfo::MemoryRefreshKind::new().with_ram()), + ) + .total_memory(); let max_ephemeral_layer_bytes = conf.ephemeral_bytes_per_memory_kb as u64 * (system_memory / 1024); tracing::info!("Initialized ephemeral layer size limit to {max_ephemeral_layer_bytes}, for {system_memory} bytes of memory");