The CPU 100% issue while sending messages

Hi, all.

I’m Japanese and got a problem on sending message.

I’ve done performance test using openfire 3.7.1.

the process is below.

  1. logon 20000 users for receive message.

  2. logon one user for send message to 20000 user.

  3. One user send message to 20000 user.

The goal of this test is to finish to send all messages within 1 minutes.

However, It takes three miniutes actually.

I checked resources and found that the CPU is used 100 % while sending messages.

So, I’d like to tune the openfire and try to increase the maximum number of threads.

Would you tell me how to tune openfire performance like the number of thread?

I checked admin console monitor and conf/openfire.xml, but there are not any good tuning point.

[client code]

I uses smack for clients.

The code for send messages is below

============================

Message xmppMsg = new Message(address, Message.Type.Normal);

xmppMsg.setBody(“aaaaaaaaaaaaaaaaaa”);

connection.sendPacket(xmppMsg);

============================

[server spec]

OS: RHEL 5.6

MEM: 8G

CPU CORE: 2

[Profiler of openfire]

CPU TIME (ms) BEGIN (total = 132195817) Mon Dec 12 18:55:08 2011

rank self accum count trace method

1 27.33% 27.33% 8325 379074 java.util.concurrent.locks.LockSupport.park

2 21.24% 48.57% 17413 376923 com.sun.grizzly.util.SyncThreadPool$SyncThreadWorker.getTask

3 10.66% 59.23% 945 382057 java.util.concurrent.locks.LockSupport.park

4 6.90% 66.12% 161 365508 java.util.concurrent.locks.LockSupport.parkNanos

5 5.99% 72.11% 56977 365668 sun.nio.ch.EPollArrayWrapper.poll

6 3.31% 75.42% 3 401074 java.util.TimerThread.mainLoop

7 2.08% 77.50% 215 398474 java.util.concurrent.locks.LockSupport.park

8 1.35% 78.85% 297 356791 java.util.concurrent.locks.LockSupport.parkNanos

9 1.15% 80.00% 1 403079 java.net.PlainDatagramSocketImpl.receive

[plugins]

I’ve used below plugins.

  • userservice

  • clustering( I user two machines for clutering)