vm.swap_reserved toooooo large?

Ronald Klop ronald-freebsd8 at klop.yi.org
Sat Dec 18 22:34:51 UTC 2010


On Sat, 18 Dec 2010 12:52:10 +0100, George Mamalakis <mamalos at eng.auth.gr>  
wrote:

> Oliver,
>
> I am sending you this email outside the list, because I think that
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

That didn't work out as you intended. :-)

> enough emails have been sent regarding my message.
> Now to your statements:
>
> On 18/12/2010 11:47 πμ, Oliver Fromme wrote:
>> George Mamalakis wrote:
>>   >  Oliver, thanx for your comments. I know it is difficult to choose  
>> which
>>   >  process to kill and how to be "fair" during such a killing  
>> procedure.
>>   >  Nevertheless, I would assume that all non-root processes would have
>>   >  higher priority to get killed, and that root's processes would get
>>   >  killed last.
>>
>> The owner of the process is not taken into consideration,
>> because the "run-away" process causing the memory shortage
>> may as well be a root-owned process.  In such a situation,
>> if root processes were exempt from killing, the system
>> would deadlock and require a hard reboot.  Killing the
>> root-owned process is the lesser of two evils.
>>
> As I explained in one of my previous emails, I expected that root  
> processes would have *lower priority* than non-root processes; I never  
> implied that root processes shouldn't get killed, it would be irrational  
> to say so.
>> As I already explained, there is a process flag that root-
>> owned processes can set for themselves, preventing the
>> kernel from killing them in low-memory situations.  See
>> the description of the MADV_PROTECT flag in the madvise(2)
>> manual page.  For example, cron(8) and sshd(8) make use of
>> this, so they will not be killed.  This is a better way
>> than simply excluding all root processes.
>>
>>   >  I understand your comments completely, but I was just so
>>   >  surprised when I realized how easy it was for me to kill root  
>> processes
>>   >  on my system.
>>
>> Only because you didn't configure resource limits.  ;-)
>>
>> When you're the only user on a machine, such as a desktop
>> box, this is usually not a big deal.  But in all other
>> cases it's strongly recommended to set resource limits,
>> in particular for shell users and for server processes.
>>
>> Without any resource limits, a normal user can starve the
>> system and take it down.  This is an old and well-known
>> problem for all UNIX systems (and most non-UNIX systems,
>> too, I guess).  You certainly didn't discover any new
>> problem.
>>
>> If you're concerned, configure resource limits.  Period.
>>
> As I stated in my first message (if I recall correctly), all this  
> happened because I didn't configure my rlimits (it's my laptop). Of  
> course I am aware of resource limits, and I configure them on most of  
> the servers I administer for the last 12 years (I've seen my vmstat  
> showing 500+ processes in blocked-by-io state, and the system wouldn't  
> hang..:)). I never implied to have discovered anything new, and  
> especially something regarding resource limits. All my enthusiasm was  
> caused firstly due to fbsd's memory allocation algorithm (I never knew  
> the system would assume that it could allocate 500+GB of memory, and the  
> replies on this issue where very enlightening for me), and secondly due  
> to fbsd's algorithm on process killing when memory has been starved.  
> Certainly, I was not surprised by the fact that my system was out of  
> memory...exceeding my system's memory limits was my experiment in the  
> first place!
>
> Anyway, thanx again for your answer and all your pointers (MADV_PROTECT,  
> etc), and I think there is no need to get angry about my emails. As I  
> initially stated, my questions where rhetorical, and no answers where  
> needed. I trusted that there should be a good reason behind this  
> behavior...Some of you answered on the list and I just replied with my  
> opinion. Nothing more, nothing less.
>
> Have a nice day and kind regards,
>
> mamalos


More information about the freebsd-stable mailing list