[−][src]Crate psi
Linux Pressure Stall Information (PSI) support for Rust.
About
The Linux Pressure Stall Information (PSI) feature provides real-time pressure information for CPU, IO and memory. psi is a rust library for reading PSI and monitoring for pressure thresholds on Linux 4.20+.
Example
use psi::*; let all: AllPsiStats = PsiKind::Memory.read_psi()?; if all.some.avg10 > 0.1f32 { // do something } let full: Psi = PsiKind::Memory.read_psi_line(PsiLine::Full)?; if full.avg60 > 0.1f32 { // do something else }
Monitor Example
use std::time::Duration; use psi::*; let oom_id = monitor.add_trigger( Trigger::new_builder() .memory() .full() .stall(Duration::from_millis(100)) .window(Duration::from_millis(500)) .build(), )?; loop { let psi_event: PsiEvent = monitor.wait_single()?; // react to psi_event }
TODO
- cgroup2 support
Re-exports
pub use crate::psi::AllPsiStats; |
pub use crate::psi::Psi; |
pub use crate::psi::PsiKind; |
pub use crate::psi::PsiLine; |
pub use error::PsiError; |
pub use error::Result; |
pub use monitor::PsiEvent; |
pub use monitor::PsiMonitor; |
pub use monitor::TriggerId; |
pub use trigger::Trigger; |
Modules
error | |
monitor | |
psi | |
trigger |