On Fri, Nov 12, 2004 at 05:40:20PM -0000, Orton, Yves wrote:
> > At a guess I would put that down to a problem with the UI for 
> > task killing and how usable it is when the system is stressed.
> 
> No it a permissions problem. Users cant kill jobs started as SYSTEM (iirc).
> I know that ive experienced this problem myself, and sometimes the _only_
> solution is to reboot the machine.
> 
> No its not a perl problem. But many people will take it as one.

iisreset /stop always seems to work for me when task manager doesn't but
maybe my setup is different. This is not a helpful thing to say but what on
earth is an admin doing setting their system up to run customer's cgi
processes in unkillable mode?

> > P.S. I'm assuming the existence of resource controls on windows.
> 
> Im pretty sure that that is an unrealistic assumption. I think anybody
> following this thread needs to keep in mind that any proposal involving the
> webserver or OS handling this issue is a total non-starter on Win32. And
> repeatedly arguing that the OS/Webserver is at fault is as useful as
> arguing that it's the rains fault you are getting wet when the roof is
> leaking. We cant do anything about the rain but we sure as hell can patch
> the roof. And before anybody argues that this is wrong and we shouldn't be
> catering to an OS'es weakenesses they should also recall that we duplicate
> vast chunks of normal OS functionality for the exact same reasons. This
> includes such "basics" as memory management, IO, threading models, fork,
> etc so I see no reason that resource management shouldn't be treated
> equivelently. (besides the fact I havent the skills to contribute more
> than this comment :-)

I'm not not trying to make an argument about an ideal, I was pointing out
that the only thing that can reliably and efficiently monitor and control
resource usage is the OS. Any program that attempts to control it's own CPU
usage has to make sure that everywhere, including inside each loop (in fact
especially inside each loop) it gives the monitor a chance to intervene. As
someone pointed out it's possible to automatically put these calls into the
optree and this could be done with a module but if we want to be able stop
runaway regexes then we'll have to add hooks into the regex engine too.

An alternative is signals but that has it's own problems, dealt with
elsewhere. Finally you could create a monitor thread for each process but
threads generally don't guarantee when the monitor might each one gets t to
run so that mightn't work at all.

It seems there is a Windows System Resource Manager that ships with Win 2003
and allows you to assign quotas etc on a per process basis. Pretty amazing
there wasn't something before that (maybe there were 3rd party ones or
something).

I'd say that the quickest and easiest solution is to produce a module with a
friendly frontend that interfaces to this WSRM (and hopefully the unix
equivalents) and then bobs your uncle, at least for a large selection of
OSes,

Fergal

Reply via email to