[JDEV] jabberd segfault under load
Schuyler Heath
sheath at jabber.org
Tue Nov 7 05:59:22 CST 2000
Have you been testing with pthsock? If so, this is most likely your
problem. Checkout jpolld from CVS, it should work a lot better under
load.
Schuyler
On Tue, Nov 07, 2000 at 02:13:30PM +0200, Dennis Noordsij wrote:
> Hi,
>
> I have been doing some tests with jabber 1.2, using the binaries available
> because the CVS doesn't compile for me (some error in jabberd.h).
>
> I am running the simulator from the CVS to simulate a client load to a
> seperate machine on the 100mbps network.
>
> The simulator runs on my laptop (P3-700, 128MB ram), the jabberd server on a
> dedicated machine (no X etc), a P3-500 with 64MB.
>
> I set up the simulator to send a message only once every 10 seconds, and
> connect every second.
>
> After about 100 users top claims that jabberd is taking up 90% of the CPU,
> network load is quite low, maybe 10-20 k/sec. I have been able to connect
> 1000 users to jabberd on my own machine (using localhost, bumped up the
> ip_local_port_range and fs/inode-max and fs/file-max), this time I expected
> more over the network. After 1700 users the jabberd server segfaulted, so I
> tried again logging everything, this time it segfaulted after 1021 users.
>
> I have attached the last 50 or so lines from the jabberd -D output, it is a
> stock 1.2 jabber server, no agents, standard spooling, etc.
>
> Anyone who can help me out? :)
>
> Regards
> Dennis
>
> PS - I think the load is quite high for so little users. I imagine that an
> IRC server would use more resources per client and still it handles much more
> clients, although you have reported jabberd to handle 20,000-40,000
> connections. What can I reasonable expect with a Linux system? It appears raw
> CPU power is much more important than memory, still I expect 10,000 clients
> on a P3 system :-)
>
>
> --------- START "jabberd -D" OUTPUT ---------------------
>
> Tue Nov 7 13:49:36 2000 deliver.c:344 delivering to instance 'sessions'
> Tue Nov 7 13:49:36 2000 deliver.c:84 (80B6238)incoming packet <route
> to='f0360 at 194.100.32.65/89DBD18' from='381 at c2s/89A76A0'><message id='360'
> to='f0139 at 194.100.32.65'><thread>asdf</thread><subject/><body>This is a long,
> multiline message.</body></message></route>
> Tue Nov 7 13:49:36 2000 users.c:147
> js_user(f0360 at 194.100.32.65/89DBD18,8124428)
> Tue Nov 7 13:49:36 2000 mtqoverflow 8190 overflowing B7F7A80
> Tue Nov 7 13:49:36 2000 io_select.c:105 WRITE 381 len -1 of <message
> id='804' to='f0360 at 194.100.32.65'
> from='f0804 at 194.100.32.65/r973595128'><thread>asdf</thread><subject/><body>This
> is a long, multiline message.</body></message>
>
> Tue Nov 7 13:49:36 2000 deliver.c:472 DELIVER 4:194.100.32.65 <route
> to='f0359 at 194.100.32.65/8940F20' from='380 at c2s/89BC768'><message id='359'
> to='f0534 at 194.100.32.65'><thread>asdf</thread><subject/><body>This is a long,
> multiline message.</body></message></route>
> Tue Nov 7 13:49:36 2000 deliver.c:344 delivering to instance 'sessions'
> Tue Nov 7 13:49:36 2000 deliver.c:84 (80B6238)incoming packet <route
> to='f0359 at 194.100.32.65/8940F20' from='380 at c2s/89BC768'><message id='359'
> to='f0534 at 194.100.32.65'><thread>asdf</thread><subject/><body>This is a long,
> multiline message.</body></message></route>
> Tue Nov 7 13:49:36 2000 users.c:147
> js_user(f0359 at 194.100.32.65/8940F20,8124428)
> Tue Nov 7 13:49:37 2000 mtqoverflow 8191 overflowing B7FA290
> Tue Nov 7 13:49:37 2000 deliver.c:472 DELIVER 4:194.100.32.65 <route
> to='f0359 at 194.100.32.65/8940F20' from='380 at c2s/89BC768'><message id='359'
> to='f0397 at 194.100.32.65'><thread>asdf</thread><subject/><body>This is another
> short message!</body></message></route>
> Tue Nov 7 13:49:37 2000 deliver.c:344 delivering to instance 'sessions'
> Tue Nov 7 13:49:37 2000 deliver.c:84 (80B6238)incoming packet <route
> to='f0359 at 194.100.32.65/8940F20' from='380 at c2s/89BC768'><message id='359'
> to='f0397 at 194.100.32.65'><thread>asdf</thread><subject/><body>This is another
> short message!</body></message></route>
> Tue Nov 7 13:49:37 2000 users.c:147
> js_user(f0359 at 194.100.32.65/8940F20,8124428)
> Tue Nov 7 13:49:37 2000 mtqoverflow 8192 overflowing B7FB648
> Tue Nov 7 13:49:37 2000 deliver.c:472 DELIVER 4:194.100.32.65 <route
> to='f0359 at 194.100.32.65/8940F20' from='380 at c2s/89BC768'><message id='359'
> to='f0969 at 194.100.32.65'><thread>asdf</thread><subject/><body>How are
> you?</body></message></route>
> Tue Nov 7 13:49:37 2000 deliver.c:344 delivering to instance 'sessions'
> Tue Nov 7 13:49:37 2000 deliver.c:84 (80B6238)incoming packet <route
> to='f0359 at 194.100.32.65/8940F20' from='380 at c2s/89BC768'><message id='359'
> to='f0969 at 194.100.32.65'><thread>asdf</thread><subject/><body>How are
> you?</body></message></route>
> Tue Nov 7 13:49:37 2000 users.c:147
> js_user(f0359 at 194.100.32.65/8940F20,8124428)
> Tue Nov 7 13:49:37 2000 mtqoverflow 8193 overflowing B7FCA00
> Tue Nov 7 13:49:37 2000 deliver.c:472 DELIVER 4:194.100.32.65 <route
> to='f0359 at 194.100.32.65/8940F20' from='380 at c2s/89BC768'><message id='359'
> to='f0225 at 194.100.32.65'><thread>asdf</thread><subject/><body>This is a long,
> multiline message.</body></message></route>
> Tue Nov 7 13:49:37 2000 deliver.c:344 delivering to instance 'sessions'
> Tue Nov 7 13:49:37 2000 deliver.c:84 (80B6238)incoming packet <route
> to='f0359 at 194.100.32.65/8940F20' from='380 at c2s/89BC768'><message id='359'
> to='f0225 at 194.100.32.65'><thread>asdf</thread><subject/><body>This is a long,
> multiline message.</body></message></route>
> Tue Nov 7 13:49:37 2000 users.c:147
> js_user(f0359 at 194.100.32.65/8940F20,8124428)
> Tue Nov 7 13:49:37 2000 mtqoverflow 8194 overflowing B7FDEA8
> Tue Nov 7 13:49:37 2000 io_select.c:105 WRITE 380 len 225 of <message
> id='359' to='f0359 at 194.100.32.65/r973595128' from='f2480 at 194.100.32.65'
> type='error'><thread>asdf</thread><subject/><body>This is a long,
> multiline message.</body><error code='404'>Not Fou
>
> segfault
>
> ----------------------------------------------------
>
>
> What I noticed after this was that in /var/log/messages on the jabberd serer
> it said "eth0: can't fille rx buffer (force 1)!" "eth0:card reports no
> resources" etc. I am not sure what to think of this, the NIC is an Intel
> EtherExpress. Is it simply hardware? Did I screw up some tuning parameters?
> Still shouldn't jabberd spool messages if it can't send them? Anyone care to
> share their tuning tips to enable me to get 10,000 clients connected? :-)
>
>
> _______________________________________________
> jdev mailing list
> jdev at jabber.org
> http://mailman.jabber.org/listinfo/jdev
More information about the JDev
mailing list