Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是tomcat';什么是性能限制?_Java_Performance_Tomcat_Load Testing - Fatal编程技术网

Java 什么是tomcat';什么是性能限制?

Java 什么是tomcat';什么是性能限制?,java,performance,tomcat,load-testing,Java,Performance,Tomcat,Load Testing,简短问题:我的tomcat服务器的最大速度是850 MB/秒。这合乎逻辑吗 我正在尝试对我的tomcat安装进行基准测试。该服务器是一个后端存储服务器,我希望其速度达到每秒约2.5 GB(30 GB)。这不是internet服务器。它是一个云计算节点,具有多个光纤卡。我对尽可能接近理论极限感兴趣 当用真实的S/W做基准时,我的表现低于标准。我用一个“虚拟”servelet测试了tomcat(见下文)。我的最大速度是850 MBytes/s。但是我的CPU只有30%忙。这合乎逻辑吗 我正在使用ap

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

我正在尝试对我的tomcat安装进行基准测试。该服务器是一个后端存储服务器,我希望其速度达到每秒约2.5 GB(30 GB)。这不是internet服务器。它是一个云计算节点,具有多个光纤卡。我对尽可能接近理论极限感兴趣

当用真实的S/W做基准时,我的表现低于标准。我用一个“虚拟”servelet测试了tomcat(见下文)。我的最大速度是850 MBytes/s。但是我的CPU只有30%忙。这合乎逻辑吗

我正在使用apache ab测试:

ab -c 100 -n 10000  localhost:8080/tcbench/tcbench
我的设置是E31260LXeon,内存32GB,Ubuntu 12.04,OracaleTomcat7和JDK 7(默认配置文件)


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


您使用的是访问日志还是其他日志

您可以尝试运行不同的轻量级服务器,例如Nginx,并只提供大文本文件。这应该给你一个带宽基准来比较。尝试了另外两个选项:来自Apache的静态128k文件-1.5gBps。码头-500 gBps。这很奇怪,我本以为Apache会更快。什么会限制我的速度?你看过了吗?硬盘I/O是什么样子的?试着分析一下,这会很有趣,什么会占用时间。。。您可以考虑调整GC。网上有很多关于如何调整tomcat的提示。
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";
    }
}