You would be best looking at the Jetty materials for information on the listeners. The main site is:
For some details on the parameters, start here at the JavaDocs:
For your app workload, you may consider the following as well - use the channel socket listener if you have JRE Java 2 1.4 as it implements non-blocking IO. Also, if you are running Linux or Windows or AIX, consider using the IBM JRE. It has much better server performance characteristics than the Sun distribution.
> For some details on the parameters, start here at the
But what would be sensible values for the parameters? Should we increase maxthreads? (set to 500 for the moment) Is there a rule of thumb?
What about the other params?
There are no absolute rule of thumb because it depends on your load characteristics. You can increase your threads, but in thl-mot's case that may not achieve the desired goal and you would probably want to increase the heap size as well.
In this instance, if you can, you would use the Jetty channel listener with non-blocking IO. Jetty should implement HTTP 1.1 so you should have persistent connections, reducing the number of connections required per user. 300 should be more than enough and the current anecdotal evidence shows this. Linger only effects the connection termination negotiation in the event that bursty network traffic interferes. You can tune it down if you are confident that your network isn't going to have any major congestion. In the scheme of things, it is probably the thing that will least affect your performance.
You may want to give it extra heap size in the VM - if you have the memory then probably throw an -Xmn32M -Xmx64M and go up from there. Your choice of VM is also going to factor into this.
If you want indicative server performance measures, look at this:
And as I said, you probably want to use the channel listener.
The catch with using the IBM JRE is that if you want https in Jetty, you need to compile in the contributed IbmJsseListener - and Tomcat doesn't have a patch for this that I've seen.
So in order of importance - VM, listener, heap size, threads. You want to deal with connections as efficiently as possible, and then tune up your handler (threads) and VM heap to accommodate the number of concurrent users.
Could I please get some more information about the channel listener?
The references are:
These give you the details on the Jetty socket channel listener and a short outline on the technical reasons for non-blocking io.
Standard server architecture articles can give a run down on the persisten connections stuff.