68 lines
2.0 KiB
RPMSpec
68 lines
2.0 KiB
RPMSpec
|
Name: oomd
|
||
|
Summary: Userspace Out-Of-Memory (OOM) killer
|
||
|
Version: 0.2.0
|
||
|
Release: 3%{dist}
|
||
|
License: GPLv2
|
||
|
URL: https://github.com/facebookincubator/oomd/
|
||
|
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
|
||
|
|
||
|
BuildRequires: gcc-c++
|
||
|
BuildRequires: meson >= 0.45
|
||
|
BuildRequires: pkgconfig(jsoncpp)
|
||
|
BuildRequires: pkgconfig(libsystemd)
|
||
|
BuildRequires: pkgconfig(gtest_main)
|
||
|
BuildRequires: pkgconfig(gmock)
|
||
|
|
||
|
%systemd_requires
|
||
|
|
||
|
%description
|
||
|
Out of memory killing has historically happened inside kernel space. On a
|
||
|
memory overcommitted linux system, malloc(2) and friends usually never fail.
|
||
|
However, if an application dereferences the returned pointer and the system has
|
||
|
run out of physical memory, the linux kernel is forced take extreme measures,
|
||
|
up to and including killing processes. This is sometimes a slow and painful
|
||
|
process because the kernel can spend an unbounded amount of time swapping in
|
||
|
and out pages and evicting the page cache. Furthermore, configuring policy is
|
||
|
not very flexible while being somewhat complicated.
|
||
|
|
||
|
oomd aims to solve this problem in userspace. oomd leverages PSI and cgroupv2
|
||
|
to monitor a system holistically. oomd then takes corrective action in
|
||
|
userspace before an OOM occurs in kernel space. Corrective action is configured
|
||
|
via a flexible plugin system, in which custom code can be written. By default,
|
||
|
this involves killing offending processes. This enables an unparalleled level
|
||
|
of flexibility where each workload can have custom protection rules.
|
||
|
Furthermore, time spent livedlocked in kernelspace is minimized.
|
||
|
|
||
|
%prep
|
||
|
%autosetup
|
||
|
|
||
|
%build
|
||
|
%meson
|
||
|
%meson_build
|
||
|
|
||
|
%check
|
||
|
%meson_test
|
||
|
|
||
|
%install
|
||
|
%meson_install
|
||
|
|
||
|
%files
|
||
|
%license LICENSE
|
||
|
%doc README.md CONTRIBUTING.md CODE_OF_CONDUCT.md docs/
|
||
|
%{_bindir}/oomd
|
||
|
%{_unitdir}/oomd.service
|
||
|
%config(noreplace) %{_sysconfdir}/oomd/
|
||
|
|
||
|
%post
|
||
|
%systemd_post oomd.service
|
||
|
|
||
|
%preun
|
||
|
%systemd_preun oomd.service
|
||
|
|
||
|
%postun
|
||
|
%systemd_postun_with_restart oomd.service
|
||
|
|
||
|
%changelog
|
||
|
* Tue Sep 10 2019 Filipe Brandenburger <filbranden@gmail.com> - 0.2.0-3
|
||
|
- Initial release of oomd RPM package
|