Hi Austin,

On 05/13/2016 03:11 PM, Austin S. Hemmelgarn wrote:
> On 2016-05-13 08:39, Sebastian Frias wrote:
>> Well, a more urgent problem would be that in that case overcommit=never is 
>> not really well tested.
> I know more people who use overcommit=never than overcommit=always.  I use it 
> myself on all my personal systems, but I also allocate significant amounts of 
> swap space (usually 64G, but I also have a big disks in my systems and don't 
> often hit swap), don't use Java, and generally don't use a lot of the more 
> wasteful programs either (many of them on desktop systems tend to be stuff 
> like office software).  I know a number of people who use overcommit=never on 
> their servers and give them a decent amount of swap space (and again, don't 
> use Java).

Then I'll look into LTP and the issues it has when overcommit=never.

>>
>> My point is that it seems to be possible to deal with such conditions in a 
>> more controlled way, ie: a way that is less random and less abrupt.
> There's an option for the OOM-killer to just kill the allocating task instead 
> of using the scoring heuristic.  This is about as deterministic as things can 
> get though.

I didn't see that in Documentation/vm/overcommit-accounting or am I looking in 
the wrong place?

>>
>> Well, it's hard to report, since it is essentially the result of a dynamic 
>> system.
>> I could assume it killed terminals with a long history buffer, or editors 
>> with many buffers (or big buffers).
>> Actually when it happened, I just turned overcommit off. I just checked and 
>> is on again on my desktop, probably forgot to make it a permanent setting.
>>
>> In the end, no processes is a good candidate for termination.
>> What works for you may not work for me, that's the whole point, there's a 
>> heuristic (which conceptually can never be perfect), yet the mere fact that 
>> some process has to be killed is somewhat chilling.
>> I mean, all running processes are supposedly there and running for a reason.
> OTOH, just because something is there for a reason doesn't mean it's doing 
> what it's supposed to be.  Bugs happen, including memory leaks, and if 
> something is misbehaving enough that it impacts the rest of the system, it 
> really should be dealt with.

Exactly, it's just that in this case, the system is deciding how to deal with 
the situation by itself.

> 
> This brings to mind a complex bug involving Tor and GCC whereby building 
> certain (old) versions of Tor with certain (old) versions of GCC with -Os 
> would cause an infinite loop in GCC.  You obviously have GCC running for a 
> reason, but that doesn't mean that it's doing what it should be.

I'm not sure if I followed the analogy/example, but are you saying that the 
OOM-killer killed GCC in your example?
This seems an odd example though, I mean, shouldn't the guy in front of the 
computer notice the loop and kill GCC by himself?

Best regards,

Sebastian


Reply via email to