15 мар. 2010 г.

Тесты нагрузки.

Существует огромное множество веб-серверов для java-приложений. От маленьких и легких "Simple" и "NanoHTTPD" до больших и могучих , таких как "SunJavaWebServer".
Тестировать все не имеет смысла, так как многие из них построены на одной базе, в частности на tomcat-е их построено предостаточно. Кому интересно вот далеко не полный список открытых веб-серверов http://java-source.net/open-source/web-servers.
Итак, сегодня наши пациенты:
  • Apache Tomcat 6.0.24
  • Sun Java WebServer 7.0u7
  • Jetty 7.0.1
  • Glassfish 2.1.1
1. Самый простой тест по нагрузке:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class TestingServlet extends HttpServlet {
    public void doGet(HttpServletRequest, HttpServletResponse 
     response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        out.println("Hello, world!");
        out.close();
    }
}
Выполняем уже привычный тест:
ab -n 10000 -n 10000 http://localhost:8083/helloworld/test

Получаем следующие результаты:
  • Apache Tomcat 6.0.24 - 3.05 сек
  • Sun Java WebServer 7.0u8 - 4.48 сек
  • Glassfish 2.1.1 - 6.48 сек
  • Jetty 7.0.1 - 19.84 сек
Как видно , явный аутсайдер - это Jetty с ее 19.48 секундами на загрузку 10000 страниц. Быстрее всех оказался как это ни странно всем известный Tomcat.

Комментариев нет: