Is it normal that a user can take down the whole system by using too much memory?
Frank Leonhardt
frank2 at fjl.co.uk
Fri Jun 8 14:18:33 UTC 2018
On 2018-06-04 10:43, Steve O'Hara-Smith wrote:
> On Sat, 02 Jun 2018 19:25:31 -0400
> Brennan Vincent <brennan at umanwizard.com> wrote:
>
>> Thanks John for the response -- this should help me solve my practical
>> needs.
>>
>> I'm also curious, however, to learn more from an OS design
>> perspective.
>
> Best way to do that is look at the code.
>
>> Why isn't it possible for the kernel to realize it should kill
>> `eatmem`
>> rather than make the system unusable?
>
> The code in vm_pageout.c that handles out of swap conditions tries
> to kill the biggest process - by that it means the one estimated to
> release
> the most memory. To that end it skips processes in various states -
> killed,
> protected, system, non-running and then picks the biggest of the
> remaining
> processes to kill.
>
> One thing that may cause the random chaos you see is that killing a
> process takes time, especially if that process has swapped out pages,
> if
> something else calls for memory it has finished dying then the next
> biggest
> process will get killed even though the process responsible has already
> been killed (after all it might be locked up and failing to die).
You might want to look at this:
http://blog.frankleonhardt.com/2011/large-swap-files-on-freebsd-die-with-mystery-killed-howto-add-lots-of-swap-space/
Regards, Frank.
More information about the freebsd-questions
mailing list