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