1 unstable release
0.1.0 | Sep 18, 2024 |
---|
#383 in Unix APIs
26 downloads per month
Used in tower-memlim
17KB
218 lines
cgroup-memory
A Rust crate for reading and interpreting /sys/fs/cgroup
memory statistics.
/sys/fs/cgroup/memory.stat
/sys/fs/cgroup/memory.max
Examples
Read total / max memory
match memory_max() {
Ok(Some(v)) => println!("Max memory: {v}"),
Ok(None) => println!("No max memory constraint"),
Err(e) => println!("Failed to read and parse memory files: {e}"),
}
Calculate available memory
match memory_available() {
Ok(Some(v)) => println!("Available memory: {v} bytes"),
Ok(None) => println!("No memory limit set"),
Err(e) => println!("Failed to read memory information: {}", e),
}
Development
Integration tests
These tests require environments with specific memory attributes. We utilize Docker to create such virtual Linux environments.
Note that memory.max
only contains a valid value if the --memory
option was specified.
Run
docker build -t cgroup-memory
# Run tests that expect 100mb of total memory
docker run --rm --memory=100m cgroup-memory /usr/local/bin/cargo-nextest ntr --archive-file test_memory_max_100m.tar.zst --workspace-remap . --no-capture