North American Network Operators Group

Date Prev | Date Next | Date Index | Thread Index | Author Index | Historical

Re: Quick question.

  • From: Alexei Roudnev
  • Date: Wed Aug 04 03:25:42 2004

I said - it WORKS. 1 spin - warning - someone opens system and kills a run
away process... Never saw 2 spins (because first one was killed before
second one). Btw, such systems (2 CPU) are even more stable in case of run
away device drivers.

I saw:
- run away tomcat server
- run away CA agent ([email protected]#$)
- run away ssh daemon
- run away sandmail
All regular, at some periods of time. And all processed without any system
degradation because of a few CPU's. The same run-aways on 1 CPU systems
caused visible degradation.

It is all mattter of trade-off - if I must select 1 threaded or 2 threaded
P-IV, I'll select 2 threaded; if I must select from $900 1 CPU and $1100 2
CPU server, I select 2 CPU one.


----- Original Message ----- 
From: "Paul Jakma" <[email protected]>
To: "Alexei Roudnev" <[email protected]>
Cc: "Michel Py" <[email protected]>; "Nanog"
<[email protected]>
Sent: Tuesday, August 03, 2004 11:39 PM
Subject: Re: Quick question.


> On Tue, 3 Aug 2004, Alexei Roudnev wrote:
>
> > It is not mad idea - 2 CPU servers are not sugnificantly more
> > expansive as 1CPU (and notice, we count P-IV MMultiThread as 2 CPU)
>
> Well, you have to compare like for like, so system with multiple CPUs
> versus exact system without. No diffference in cost, other than for
> the CPUs.
>
> And if you want reliability, you're not going to be buying your
> machines from the nearest Lidl (unless your application is engineered
> to take advantage of dozens of cheap throwaway PCs).
>
> > but increases system redundancy to the run-away processes. Of
> > course, it is not hardware redundancy, but it REALLY works.
>
> Not really.. this is a resource exhaustion problem, and you can not
> cure this, given buggy apps, by throwing more CPUs at it.
>
> Let's say you have some multi-process or multi-threaded application
> which regularly spawns/forks new processes/threads, but it is buggy
> and prone to having individual processes/threads spin.
>
> So one spins, but you still have plenty of CPU time left cause you
> have two CPUs. Another spins, and the machine starts to crawl. So you
> solve this problem by upgrading to a quad-SMP machine. And guess what
> happens? :)
>
> Sure, there are some application bugs you can mask a wee bit with
> SMP, but it's not much cop, its not a solution, and you need
> an infinite-SMP machine to guarantee that a bad application
> can never hog all CPU time.
>
> What you really want is a good OS with:
>
> - a good scheduler (to prevent spinning tasks from starving other
> tasks)
>
> - ability to set resource limits, ie per-task and/or per-user (if
> your apps run under dedicated user accounts) limits on cpu time,
> resident memory, etc..
>
> Both of these will allow you to constrain the impact bad tasks can
> have on the system, whether your machine is 1, 2, ... or n CPUs.
>
> The real solution though is to fix the buggy application.
>
> regards,
> -- 
> Paul Jakma [email protected] [email protected] Key ID: 64A2FF6A
> Fortune:
> The life which is unexamined is not worth living.
>   -- Plato