Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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 servlet的html响应时间非常高_Java_Html_Json_Tomcat_Servlets - Fatal编程技术网

java servlet的html响应时间非常高

java servlet的html响应时间非常高,java,html,json,tomcat,servlets,Java,Html,Json,Tomcat,Servlets,我有一个servlet,它需要处理大量的简单http请求。我有时必须将其作为json响应返回,有时作为html返回 整个servlet的代码是相同的,但最后我有一个if语句: if(json) { request.setContentType("application/JSON"); String json_response = String.format("some string %s", some_other_string); out.print(jso

我有一个servlet,它需要处理大量的简单http请求。我有时必须将其作为json响应返回,有时作为html返回

整个servlet的代码是相同的,但最后我有一个if语句:

 if(json) {
      request.setContentType("application/JSON");
      String json_response = String.format("some string %s", some_other_string);
      out.print(json_response);
 } else {
      request.setContentType("text/html");
      String html_response = String.format("<html><body>some text %s</body></html>", some_other_string);
      out.print(html_response);
 }
我的连接池设置为:

<Resource name="jdbc/testdb"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/table?autoReconnect=true"
username="user"
password="pass"
maxActive="250"
maxIdle="60"
minIdle="30"
maxWait="10000"
/>
我在专用服务器上运行它。具有12gb ram和ssd的四核。Tomcat 8和Sun jdk 8

当我发送json响应请求时,服务器每秒处理200个请求没有问题。 但是当我发送html响应请求时,当负载小于每秒10个请求时,响应时间大约为80毫秒,但是当超过这个时间时,响应时间平均为3000-4000毫秒

我对servlet的执行进行了计时,它在1ms内执行。而且html响应处于高负载,因此3000毫秒应该来自其他地方

我尝试将html放入jsp文件中,但这并没有改变任何事情

我无法让visualVM运行以检查servlet的性能,但由于它在1ms内执行,我认为问题应该在Tomcat配置中的某个地方

有人有办法解决这个问题吗


谢谢

您是如何测量响应时间的?@juan.facorro我使用的是来自Monitis第三方应用程序的http正常运行时间监视器。我还检查了页面本身,当我执行json请求时,它会立即加载,而使用html时,加载只需要几秒钟。由于没有太多信息可以得出任何结论,我建议使用一个简单的工具,比如在监视服务器上的CPU使用情况时点击端点。如果CPU很高,那么进行一些分析以找到瓶颈。对不起,我没有更具体的建议。@juan.facorro哦,是的,我忘了提到这个非常重要的细节。cpu和内存使用率低于10%。所以我不知道为什么A..Juang.Frofro运行AB工具有问题:AB—N 100000 - C 200主机名/路径这是ApacheBench,版本2.3版权1996 Adam Twiss,宙斯技术有限公司,授权给Apache软件基金会,基准测试主机名患者完成10000个请求完成20000个请求完成30000个请求完成40000个请求完成50000个请求完成60000个请求完成70000个请求完成80000个请求完成90000个请求完成100000个请求完成100000个请求