Thanks. I looked into our pipeline, but we only have the default processors (root, spam, transport and error). We could try to remove something, but I'm not sure it would make a big difference, and anyway the flexibility of the pipeline is one of the features we like in James, and if we can't use it because of performance problems it puts a dent in the case for using it in the first place. Anyway, one of the engineers has a bit more info about what's using so much CPU, you might find this useful.
Here's a call stack of one of the threads that appears to be using a lot of CPU with large messages. [1] java.net.SocketInputStream.socketRead0 (native method) [2] java.net.SocketInputStream.read (SocketInputStream.java:129) [3] java.io.BufferedInputStream.read1 (BufferedInputStream.java:220) [4] java.io.BufferedInputStream.read (BufferedInputStream.java:277) [5] sun.nio.cs.StreamDecoder$CharsetSD.readBytes (StreamDecoder.java:408) [6] sun.nio.cs.StreamDecoder$CharsetSD.implRead (StreamDecoder.java:450) [7] sun.nio.cs.StreamDecoder.read (StreamDecoder.java:182) [8] java.io.InputStreamReader.read (InputStreamReader.java:167) [9] java.io.BufferedReader.fill (BufferedReader.java:136) [10] java.io.BufferedReader.read (BufferedReader.java:157) [11] org.apache.james.util.CRLFTerminatedReader.readLine (CRLFTerminatedReader.java:139) [12] org.apache.james.smtpserver.SMTPHandler.readCommandLine (SMTPHandler.java:546) [13] org.apache.james.smtpserver.SMTPHandler.handleConnection (SMTPHandler.java:399) [14] org.apache.james.util.connection.ServerConnection$ClientConnectionRunner.run (ServerConnection.java:465) [15] org.apache.james.util.thread.ExecutableRunnable.execute (ExecutableRunnable.java:89) [16] org.apache.james.util.thread.WorkerThread.run (WorkerThread.java:125) Note that the engineer set the jvm to -Xms80m -Xmx80m. It doesn't appear to make a difference. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]