# memsave **Repository Path**: tjj98/memsave ## Basic Information - **Project Name**: memsave - **Description**: 适配openEuler(内核版本至少5.10),支持 cgroup v1,容器内存超分,基于Senpai做了一些优化,更易用更高效 - **Primary Language**: C++ - **License**: GPL-2.0 - **Default Branch**: memsave - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2023-09-20 - **Last Updated**: 2023-09-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # memsave [![Support Ukraine](https://img.shields.io/badge/Support-Ukraine-FFD500?style=flat&labelColor=005BBB)](https://opensource.fb.com/support-ukraine) [![Build Status](https://github.com/facebookincubator/oomd/workflows/CI/badge.svg?branch=main)](https://github.com/facebookincubator/oomd/actions?query=workflow%3ACI+branch%3Amain) memsave is *userspace* memory saving tool fit for openEuler(kernel version: 5.10 at least) using cgroup v1. ## Background We have made some optimized feature based on Senpai to make it more easy to use and more efficient: 1. change to support cgroup v1 of openEuler 2. introduce reclaim rate adaptive solution 3. optimize memory reclaim limit solution 4. support reclaim specified memory type including anon or file 5. others See the git log for details. This branch only build the senpai plugin for memory saving purpose. ## Build and run Note that memsave requires PSI for cgroup v1 to function. This kernel feature has been merged into the openEuler 5.10 kernel release. memsave currently depends on [meson][2] and [jsoncpp][4]. [libsystemd][6] is an optional dependency. memsave also requires GCC 8+ or clang 6+. Other compilers have not been tested. $ git clone https://gitee.com/sun_nanyong/oomd.git $ cd oomd/oomd $ meson build && ninja -C build $ cd build $ sudo ./memsave -C ../src/oomd/etc/memsave.json ## Configuration See [docs/configuration.md](docs/configuration.md) for a high level overview and some examples. See [docs/core_plugins.md](docs/core_plugins.md) for a quick reference on core plugin capabilities. See [docs/production_setup.md](docs/production_setup.md) for guidelines on how oomd should be set up in a production environment. ## Help / Discussion / Support Join our **#oomd** channel on irc.freenode.net! ## License oomd is GPL 2 licensed, as found in the [LICENSE](LICENSE) file. [0]: https://www.kernel.org/doc/Documentation/vm/overcommit-accounting [1]: https://lwn.net/Articles/317814/ [2]: http://mesonbuild.com/ [4]: https://github.com/open-source-parsers/jsoncpp [5]: https://github.com/google/googletest [6]: https://github.com/systemd/systemd/tree/master/src/libsystemd/