什么是tomcat的性能限制?

时间:2013-10-30 14:53:09

标签: java performance tomcat load-testing

简短问题:我的tomcat服务器最大速度为850 MBytes /秒。这是合乎逻辑的吗?

我正在尝试对我的tomcat安装进行基准测试。服务器是一个后端存储服务器,我希望达到每秒~2.5 GBytes / S(30 gBits)的速度。这不是互联网服务器。它是一个云计算节点,有几个光纤卡。我有兴趣尽可能接近理论极限。

当使用真实的S / W进行基准测试时,我的表现低于标准杆。我用一个“虚拟”服务器测试了tomcat(下图)。我的最大速度为850 MBytes / s。但我的CPU只有30%的忙碌。这是合乎逻辑的吗?

我正在使用apache ab来测试:

ab -c 100 -n 10000  localhost:8080/tcbench/tcbench

我的设置是带有32GB内存的E31260L XEON,Ubuntu 12.04和带有JDK 7的Oracale tomcat7(默认配置文件)。

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 
public class tcbench extends HttpServlet {
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("application/text;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            out.print(testBuffer);
        } finally {            
            out.close();
        }
    }

    static char[] testBuffer=new char[128*1024];

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Short description";
    }
}

1 个答案:

答案 0 :(得分:0)

如果你不受CPU限制......这通常意味着其他东西阻碍了你。

您使用的是访问记录器还是其他日志记录?