Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I improve jetty response times?

Tags:

java

jetty

I'm trying to speed test jetty (to compare it with using apache) for serving dynamic content.

I'm testing this using three client threads requesting again as soon as a response comes back. These are running on a local box (OSX 10.5.8 mac book pro). Apache is pretty much straight out of the box (XAMPP distribution) and I've tested Jetty 7.0.2 and 7.1.6

Apache is giving my spikey times : response times upto 2000ms, but an average of 50ms, and if you remove the spikes (about 2%) the average is 10ms per call. (This was to a PHP hello world page)

Jetty is giving me no spikes, but response times of about 200ms.

This was calling to the localhost:8080/hello/ that is distributed with jetty, and starting jetty with java -jar start.jar.

This seems slow to me, and I'm wondering if its just me doing something wrong.

Any sugestions on how to get better numbers out of Jetty would be appreciated.

Thanks

like image 909
Michael Anderson Avatar asked Oct 25 '10 23:10

Michael Anderson


People also ask

How many connections can Jetty handle?

In HTTP/1.1, a destination holds a pool of connections (controlled by maxConnectionsPerDestination, by default 64). So if you send requests in a tight loop, assuming connection establishment takes zero time, you can have at most 64 (on the network) + 1024 (queued) outstanding requests. The next one will be rejected.

Does Jetty use Apache?

In terms of licensing, Tomcat enjoys the Apache 2.0 open source license, while Jetty is dual licensed through both the Apache 2.0 License and the Eclipse Public License 1.0.

What does eclipse jetty do?

The Eclipse Jetty Project Jetty provides a web server and servlet container, additionally providing support for HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations. These components are open source and are freely available for commercial use and distribution.

What is Jetty API?

Jetty is an open source Java web server, as well as a servlet container, that provides an application with the features required to launch and run an application servlet or API.


1 Answers

Well, since I am successfully running a site with some traffic on Jetty, I was pretty surprised by your observation.

So I just tried your test. With the same result.

So I decompiled the Hello Servlet which comes with Jetty. And I had to laugh - it really includes following line:

 Thread.sleep(200L);

You can see for yourself.

My own experience with Jetty performance: I ran multi threaded load tests on my real-world app where I had a throughput of about 1000 requests per second on my dev workstation...

like image 89
the.duckman Avatar answered Oct 19 '22 23:10

the.duckman