cgroup-memory

Crates.iocgroup-memory
lib.rscgroup-memory
version0.1.0
sourcesrc
created_at2024-09-18 20:06:47.314045
updated_at2024-09-18 20:06:47.314045
descriptionA library for reading and interpreting `/sys/fs/cgroup` memory statistics.
homepage
repositoryhttps://github.com/sdtnjung/cgroup-memory.git
max_upload_size
id1379579
size21,745
(sdtnjung)

documentation

README

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
Commit count: 0

cargo fmt