High loads...

Russ Allbery rra at stanford.edu
Thu Mar 15 10:44:34 EST 2007


Bjorn Hellqvist <bjhell at telia.net> writes:
> On Wed, 14 Mar 2007, Russ Allbery wrote:

>> I'm definitely missing something since no matter what you're making
>> your single client do, it shouldn't be talking to more than a handful
>> of nnrpd processes at most.  Which doesn't explain what 95 processes
>> are all in the run queue on your system.  INN doesn't usually spawn
>> that many processes due to its architecture unless you have a bunch of
>> readers, which you say that you don't.

>> What does top say is trying to run?

> nnrpd for the most parts...

> This is the output of news.notice when its at the top.

> "Unable to allocate memory for transaction detail"

> What memory are reported to be out of?

System memory.  You have enough nnrpds running that you probably ran out
of swap.  (The reason why your system is so slow and has such a high load
is that you ran the system into swap, most likely.)

> Maybe this is not a real problem on real use. I am currently pushing
> 20-30 new connections per second to the system. And are doing this for a
> couple of minutes. ( 16:06:35 - 16:09:09 )

If you're starting 25 new connections every second for about 150 seconds,
at the end of that you have 3,750 nnrpd processes running (assuming that
you're not closing any of those connections down).  If each one has 1MB of
overhead memory required, you need 3.7GB of system memory to be able to
run them all plus whatever innd needs.

INN can handle that sort of load given appropriate resources, but the
resources may be high.

> But never the less. I dont want a operational system to die out like
> that from just one abusive customer.

So what you really want to do is prevent someone from opening that many
connections that quickly, since nearly 4,000 simultaneous users probably
doesn't represent your real production load.  For that, either run innd
and nnrpd on separate ports (433 is the recommended choice for the port
line in inn.conf) and then run nnrpd under xinetd or some other smart
server that can do connection throttling, or look into using the -W, -T,
and -X flags to innd (set via innflags in inn.conf and documented in the
innd man page).  Just using -X 30 or thereabouts would probably keep this
problem under control.

-- 
Russ Allbery (rra at stanford.edu)             <http://www.eyrie.org/~eagle/>

    Please send questions to the list rather than mailing me directly.
     <http://www.eyrie.org/~eagle/faqs/questions.html> explains why.




More information about the inn-workers mailing list