james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joan Carles" <joancar...@indibil.com>
Subject RE: System Load
Date Mon, 26 Feb 2001 16:46:04 GMT

----- Original Message -----
From: Serge Knystautas <sergek@lokitech.com>
To: <james-dev@jakarta.apache.org>
Sent: Monday, February 26, 2001 5:27 PM
Subject: Re: System Load

> ----- Original Message -----
> From: "Joan Carles" <joancarles@indibil.com>
> > Correct me if I am wrong, here go some thoughts:
> > It is always desirable that a machine does not go over system load =1.
> > this
> > happens very often then it is a matter of upgrading or adding more
> servers.
> > The thing is, the server should handle peak times smoothly without the
> need
> > of upgrading.
> > Sendmail's design is based on forking a process for every request.
> > why
> > it will stop processing mails (and queue them) when the number of
> > is
> > very high and the system load goes over 1, it basically concentrates in
> > keeping
> > up with requests.
> > If James creates a new Thread per request then it should apply the same
> > principle.
> > All in all, it is a matter of avoiding excesive use of resources
> > sockets,
> > cpu etc).
> > In the case of RDBMS based queues, processing mail may increase the
> > load quite a lot. System load indicates the average number of processes
> held
> > in
> > the queue waiting for CPU time. In my experience, when load is very high
> the
> > system starts to behave differenly and exponential growth of
> > threads/sockets/queueing
> > is a situation that may bring the server down to its knees.
> >
> > What do you think?
> >
> >    J. C.
> I don't think this is how James works.  James starts by defining X number
> threads that process mail, Y number of threads that deliver mail.
> SMTP and POP3 requests create/destroy their own threads, but this is
> independent of what's being discussed (from what I can tell).  Basically,
> you're looking for James not to exponentially grow thread to process mail
> remotely deliver mail, which it does not.  The X and Y threads sleep until
> there's something to do, waking up when something is there for them.  I'd
> say it would be nice to lower the priority on some of these, but I'm not
> sure how feasible that is using Avalon (or rather, what is the best way to
> do that)
> What restrictions are you looking to put on the thread behavior?  I'd like
> to understand this better before coming up with a way to monitor load.

Allright then, X and Y do the trick. I believe that when I observed system
of 10 or higher it was due to the fact that I was using a RDBMS queue (JDBC
+ Interbase running on the same machine). So giving less priority to
threads (delivery) or making Y smaller would do keep system load around 1.
I would imagine that server tuning would involve finding the correct Y


          J. C.

View raw message