Peter Doschkinow ha scritto: > Hi, > > I am running james 2.2.0 on a highly scalable CMT Solaris box with 40
Please test 2.3.1. No developer looks at 2.2.0 code since years, so you should first upgrade to 2.3.1 and see if the result is the same. Stefano > hardware threads trying to get a maximum throughput. I am using a load > generator that is sending 17k-mails in a loop to james on a configurable > number of parallel running client connections. Now the problem is, that > I can not get up the CPU usage, it remains at 0%, even if I increase the > number of concurrent clients. I also played with different > configurations of work thread numbers(e.g. 5,30,100), but this did not > help much. With more concurrent clients and more working threads in the > pool I get more throughput, but far more less than I should if james > scaled as expected. What I am seeing in the thread dumps is that a lot > of working threads are waiting in a TIMED_WAITING or WAITING state, > below is a snippet. > > Do you have any configuration hints to get better scalability and > throughput? > > How important are the InaccurateTimeoutWatchdog -s and would it help to > play with the timeout parameter in their constructor? I do not know > james well and had my first contact with this software only a couple of > days ago.. > > Any hints and suggestions are welcome! > > Thanks and best regards > Peter > > ---------------------------------------------------------------------------------------------------------------------- > > "default Worker #47" daemon prio=3 tid=0x005f9c00 nid=0x78 in > Object.wait() [0x8f07f000..0x8f07fa70] > java.lang.Thread.State: TIMED_WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0xe350d260> (a > org.apache.james.util.watchdog.InaccurateTimeoutWatchdog) > at > org.apache.james.util.watchdog.InaccurateTimeoutWatchdog.run(InaccurateTimeoutWatchdog.java:181) > > - locked <0xe350d260> (a > org.apache.james.util.watchdog.InaccurateTimeoutWatchdog) > at > org.apache.james.util.thread.ExecutableRunnable.execute(ExecutableRunnable.java:55) > > at org.apache.james.util.thread.WorkerThread.run(WorkerThread.java:91) > - locked <0x9f113fb0> (a org.apache.james.util.thread.WorkerThread) > > Locked ownable synchronizers: > - None > > "default Worker #46" daemon prio=3 tid=0x00e6e800 nid=0x77 runnable > [0x8f17f000..0x8f17faf0] > java.lang.Thread.State: RUNNABLE > at java.net.SocketInputStream.socketRead0(Native Method) > at java.net.SocketInputStream.read(SocketInputStream.java:129) > at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) > at java.io.BufferedInputStream.read(BufferedInputStream.java:317) > - locked <0xe350d290> (a java.io.BufferedInputStream) > at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) > at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) > at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) > - locked <0xe350d748> (a java.io.InputStreamReader) > at java.io.InputStreamReader.read(InputStreamReader.java:167) > at java.io.BufferedReader.fill(BufferedReader.java:136) > at java.io.BufferedReader.read(BufferedReader.java:157) > - locked <0xe350d748> (a java.io.InputStreamReader) > at > org.apache.james.util.CRLFTerminatedReader.readLine(CRLFTerminatedReader.java:98) > > at > org.apache.james.smtpserver.SMTPHandler.readCommandLine(SMTPHandler.java:505) > > at > org.apache.james.smtpserver.SMTPHandler.handleConnection(SMTPHandler.java:358) > > at > org.apache.james.util.connection.ServerConnection$ClientConnectionRunner.run(ServerConnection.java:417) > > at > org.apache.james.util.thread.ExecutableRunnable.execute(ExecutableRunnable.java:55) > > at org.apache.james.util.thread.WorkerThread.run(WorkerThread.java:91) > - locked <0x9f125b50> (a org.apache.james.util.thread.WorkerThread) > > Locked ownable synchronizers: > - None > > "default Worker #45" daemon prio=3 tid=0x008e8800 nid=0x76 in > Object.wait() [0x8f27f000..0x8f27fb70] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x9f113c18> (a org.apache.james.util.thread.WorkerThread) > at java.lang.Object.wait(Object.java:485) > at > org.apache.james.util.thread.WorkerThread.waitUntilCondition(WorkerThread.java:173) > > - locked <0x9f113c18> (a org.apache.james.util.thread.WorkerThread) > at org.apache.james.util.thread.WorkerThread.run(WorkerThread.java:83) > - locked <0x9f113c18> (a org.apache.james.util.thread.WorkerThread) > > Locked ownable synchronizers: > - None > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
