<document>

Resin is an excellent web server for both static pages and for load-balancing to multiple backend application servers. For a web-tier server, static page performance and load-balance performance are both important, as is the ability to proxy cache pages. The following benchmarks give a quick comparison between Resin and Apache as web-tier servers: both are very close in performance, although Resin is slightly faster than Apache in most of these cases.

These results were benchmarked with Resin 3.1.0 and Apache 2.2.3 with a pair of Debian Linux machines using a 1G ethernet. Resin's proxy cache was disabled to match Apache's default no proxy-cache configuration, but no other special configurations were applied to either server.

The first set of benchmarks compare static page serving using a 1k page to simulate small image files and a 64k page to simulate normal web pages. For the small pages, Resin was about 5% faster than Apache, and for large pages, the two are essentially identical.

Resin (ops per second) Apache (ops per second)
1k html (1 client, 1 keepalive) 3,537 OPS 3,287 OPS
1k html (10 client, 4 keepalive) 19,568 OPS 16,466 OPS
64k html (1 client, 1 keepalive) 874 OPS 859 OPS
64k html (10 client, 4 keepalive) 1,800 OPS 1,804 OPS

The second set of benchmarks compare load balancing of JSP pages to a backend Resin server. Both a 1k page and a 64k page were simulated. For comparison, the performance of Resin serving the same JSP page as a standalone HTTP server is also provided. Again, for small pages Resin is about 5-10% faster than Apache and is essentially identical for larger pages.

Resin Load Balancing Apache Load Balancing Resin Standalone
1k jsp (1 client, 1 keepalive) 2,269 OPS 1,989 OPS 3,903 OPS
1k jsp (10 client, 4 keepalive) 14,119 OPS 10,351 OPS 26,620 OPS
64k jsp (1 client, 1 keepalive) 579 OPS 604 OPS 826 OPS
64k jsp (10 client, 4 keepalive) 1,668 OPS 1,661 OPS 1,799 OPS

As always, no artificial benchmark can replace measuring your own application with your own configuration and load. In most cases, other considerations like the application performance and database performance will dominate the performance (although proxy caching can make slow applications run as fast as static pages.) These numbers in particular are a trivial tests with a simple load. They do measure the maximum performance of the web server, so they are valuable information, but they are very different from a benchmark of a complete application.

Warnings aside, these results do indicate that many sites should seriously consider using Resin as their web-tier load-balancing server. (After benchmarking your own application, of course.)

</document>