memavaild - Man Page
Daemon that keeps amount of available memory
Synopsis
memavaild [OPTION]...
Description
memavaild
is a daemon that tries to keep amount of available memory to improve system responsiveness during heavy swapping.
Default behavior: the control groups specified in the config (user.slice
and system.slice
) are swapped out when MemAvailable is low by reducing memory.high
(values change dynamically). memavaild tries to keep about 3% available memory.
Effects: tasks are performed at less I/O and memory pressure (and this may be detected by PSI metrics). At the same time, performance may be increased in tasks that requires heavy swapping, especially in I/O bound tasks. Using memavaild has no effect without swap space.
Command-Line Options
-c CONFIG
path to the config file
Requirements
- Python (>= 3.3)
- systemd with unified cgroup hierarchy
Known problems
- The documentation is terrible (no config keys description, for example);
- The ZFS ARC cache is memory-reclaimable, like the Linux buffer cache. However, in contrast to the buffer cache, it currently does not count to MemAvailable (see <https://github.com/openzfs/zfs/issues/10255>). Don't use
memavaild
with ZFS; - Seems like
memavaild
violates the second rule (https://systemd.io/CGROUP_DELEGATION/):memavaild
manipulates the attributes of cgroups created by systemd (memavaild
changesmemory.high
values).
Files
/etc/memavaild.conf
path to configuration file
Restore Default Config
To resore config file with default values execute
sudo cp /usr/share/memavaild/memavaild.conf /etc/memavaild.conf
How to Configure
Edit the config and restart the service.
Reporting Bugs
Feel free to ask any questions and report bugs at <https://github.com/hakavlad/memavaild/issues>.
Author
Written by Alexey Avramov <hakavlad@gmail.com>.
Homepage
Homepage is <https://github.com/hakavlad/memavaild>.