Re: Fedora 32 System-Wide Change proposal (late): Enable EarlyOOM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Yesterday, I have updated my Rawhide and wondered why `dnf autoremove`
would want to remove earlyoom just to discover that soft dependency in
earlyoom was dropped [1] and hence nothing requires earlyoom and DNF is
free to remove this package (and it is possibly not installed anymore on
upgraded systems).

Therefore I wonder what is the status of EarlyOOM. Should I let the
package go? If not, then the situation should be fixed somehow, probably
either by reverting the revert or adding the dependency into
fedora-release as was proposed elsewhere.


Vít


[1]
https://src.fedoraproject.org/rpms/earlyoom/c/a6d0f45a3524830642a4120704e8d295598f8ec3?branch=master


Dne 03. 01. 20 v 20:18 Ben Cotton napsal(a):
> https://fedoraproject.org/wiki/Changes/EnableEarlyoom
>
> == Summary ==
> Install earlyoom package, and enable it by default. This will cause
> the kernel oomkiller to trigger sooner, but will not affect which
> process it chooses to kill off. The idea is to recover from out of
> memory situations sooner, rather than the typical complete system hang
> in which the user has no other choice but to force power off.
>
>
> == Owner ==
> * Name: [[User:chrismurphy| Chris Murphy]]
> * Email: bugzilla@xxxxxxxxxxxxxxxxx
>
> == Detailed Description ==
> Workstation working group has discussed "better interactivity in
> low-memory situations" for some months. In certain use cases,
> typically compiling, if all RAM and swap are completely consumed,
> system responsiveness becomes so abysmal that a reasonable user can
> consider the system "lost", and resorts to forcing a power off. This
> is objective a very bad UX. The broad discussion of this problem, and
> some ideas for near term and long term solutions, is located here:
>
> Recent long discussions on "Better interactivity in low-memory situations"<br>
> https://pagure.io/fedora-workstation/issue/98<br>
> https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx/message/XUZLHJ5O32OX24LG44R7UZ2TMN6NY47N/<br>
>
> Fedora editions and spins, have the in-kernel OOM (out-of-memory)
> manager enabled. The manager's concern is keeping the kernel itself
> functioning. It has no concern about user space function or
> interactivity. This proposed change attempts to improve the user
> experience, in the short term, by triggering the in-kernel process
> killing mechanism, sooner. Instead of the system becoming completely
> unresponsive for tens of minutes, hours or days, the expectation is an
> offending process (determined by oom_score, same as now) will be
> killed off within seconds or a few minutes. This is an incremental
> improvement in user experience, but admittedly still suboptimal. There
> is additional work on-going to improve the user experience further.
>
> Workstation working group discussion specific to enabling earlyoom by default
> https://pagure.io/fedora-workstation/issue/119
>
> Other in-progress solutions:<br>
> https://gitlab.freedesktop.org/hadess/low-memory-monitor<br>
>
> Background information on this complicated problem:<br>
> https://www.kernel.org/doc/gorman/html/understand/understand016.html<br>
> https://lwn.net/Articles/317814/<br>
>
> == Benefit to Fedora ==
>
> There are two major benefits to Fedora:
>
> * improved user experience by more quickly regaining control over
> one's system, rather than having to force power off in low-memory
> situations where there's aggressive swapping. Once a system becomes
> unresponsive, it's completely reasonable for the user to assume the
> system is lost, but that includes high potential for data loss.
>
> * reducing forced poweroff as the main work around will increase data
> collection, improving understanding of low memory situations and how
> to handle them better
>
>
> == Scope ==
> * Proposal owners:
> a. Modify {{code|https://pagure.io/fedora-comps/blob/master/f/comps-f32.xml.in}}
> to include earlyoom package for Workstation.<br>
> b. Modify {{code|https://src.fedoraproject.org/rpms/fedora-release/blob/master/f/80-workstation.preset}}
> to include:
> <pre>
> # enable earlyoom by default on workstation
> enable earlyoom.service
> </pre>
>
> * Other developers:
> Restricted to Workstation edition, unless other editions/spins want to opt-in.
>
> * Release engineering: [https://pagure.io/releng/issues #9141] (a
> check of an impact with Release Engineering is needed) <!-- REQUIRED
> FOR SYSTEM WIDE CHANGES -->
>
> * Policies and guidelines: N/A
> * Trademark approval: N/A
>
> == Upgrade/compatibility impact ==
> earlyoom.service will be enabled on upgrade. An upgraded system should
> exhibit the same behaviors as a clean installed system.
>
> == How To Test ==
> * Fedora 30/31 users can test today, any edition or spin:<br>
> {{code|sudo dnf install earlyoom}}<br>
> {{code|sudo systemctl enable --now earlyoom}}
>
> And then attempt to cause an out of memory situation. Examples:<br>
> {{code|tail /dev/zero}}<br>
> {{code|https://lkml.org/lkml/2019/8/4/15}}
>
> * Fedora Workstation 32 (and Rawhide) users will see this service is
> already enabled. It can be toggled with  {{code|sudo systemctl
> start/stop earlyoom}}  where start means earlyoom is running, and stop
> means earlyoom is not running.
>
> == User Experience ==
> The most egregious instances this change is trying to mitigate:
> a. RAM is completely used
> b. Swap is completely used
> c. System becomes unresponsive to the user as swap thrashing has ensued
> --> earlyoom disabled, the user often gives up and forces power off
> (in my own testing this condition lasts >30 minutes with no kernel
> triggered oom killer and no recovery)
> --> earlyoom enabled, the system likely still becomes unresponsive but
> oom killer is triggered in much less time (seconds or a few minutes,
> in my testing, after less than 10% RAM and 10% swap is remaining)
>
> earlyoom starts sending SIGTERM once both memory and swap are below
> their respective PERCENT setting, default 10%. It sends SIGKILL once
> both are below their respective KILL_PERCENT setting, default 5%.
>
> The package includes configuration file /etc/default/earlyoom which
> sets option {{code|-r 60}} causing a memory report to be entered into
> the journal every minute.
>
> == Dependencies ==
> earlyoom package has no dependencies
>
> == Contingency Plan ==
> * Contingency mechanism: Owner will revert all changes
> * Contingency deadline: Final freeze
> * Blocks release? No
> * Blocks product? No
>
> == Documentation ==
> {{code|man earlyoom}}<br><br>
> https://www.kernel.org/doc/gorman/html/understand/understand016.html
>
> == Release Notes ==
> Earlyoom service is enabled by default, which will cause kernel
> oom-killer to trigger sooner. To revert to previous behavior:<br>
> {{code|sudo systemctl disable earlyoom.service}}
>
> And to customize see {{code|man earlyoom}}.
>
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux