3个版本
0.1.2 | 2019年10月17日 |
---|---|
0.1.1 | 2019年8月31日 |
0.1.0 | 2019年8月31日 |
#663 in Unix API
22KB
557 行
PSI (压力停滞信息)
用于处理Linux 4.20+上的PSI的实用程序。
用法
[dependencies]
psi = "0.1"
许可证
版权所有 © Chris Manning
本项目采用MPL-2.0许可证。
lib.rs
:
Linux压力停滞信息(PSI)对Rust的支持。
关于
Linux的压力停滞信息(PSI)功能为CPU、IO和内存提供实时压力信息。psi是一个用于读取PSI并在Linux 4.20+上监控压力阈值的Rust库。
示例
use crate::psi::*;
fn example() -> Result<()> {
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
}
Ok(())
}
监控示例
use std::time::Duration;
use crate::psi::*;
fn example() -> Result<()> {
let mut monitor = PsiMonitor::new()?;
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
}
}
待办事项
- cgroup2支持
依赖
~115KB