Expand description
§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
Structs§
- Memory
Stat - Represents the memory statistics from the MEMORY_STAT file.
Enums§
Constants§
Functions§
- memory_
available - Returns the available memory in bytes.
- memory_
max - Reads and parses the memory max file.
- memory_
max_ parse - Parses the max memory line.
- memory_
max_ unsafe - Reads and parses the memory max file using unsafe code.
- memory_
net_ used - Returns the net used memory in bytes.
- memory_
net_ used_ calc - Calculates the net used memory in bytes.
- memory_
stat - Reads and parses the memory statistics file.