运行“空”Undertow时,每秒HTTP请求的限制因素是什么?【JAVA教程】

!
也想出现在这里? 联系我们
信息

运行“空”Undertow时,每秒HTTP请求的限制因素是什么?,第1张

概述运行“空”Undertow时,每秒HTTP请求的限制因素是什么?

我正在运行一个非常简单的Undertowconfiguration。 整个代码包括:

public class HelloWorldUndertow { public static voID main(String[] args) { Undertow undertow = Undertow.builder() .addhttpListener(9090,\”0.0.0.0\”) .setHandler(new httpHandler() { @OverrIDe public voID handleRequest(httpServerExchange exchange) throws Exception { exchange.setResponseCode(200); exchange.getResponseSender().send(\”hello!\”); } }).build(); undertow.start(); } }

我尝试testing每秒可以处理多less个请求。 我正在使用apache的ab工具进行测量:

ab -n 100000 -c 10 http://localhost:9090/test

我设法得到的最大数字是大约10000 3 /秒:

Concurrency Level: 10 Time taken for tests: 10.664 seconds Complete requests: 100000 Failed requests: 0 Total transferred: 10000000 bytes HTML transferred: 600000 bytes Requests per second: 9377.69 [#/sec] (mean) Time per request: 1.066 [ms] (mean) Time per request: 0.107 [ms] (mean,across all concurrent requests) Transfer rate: 915.79 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.2 0 1 Processing: 0 1 0.5 1 11 Waiting: 0 1 0.5 1 11 Total: 0 1 0.5 1 11 Percentage of the requests served within a certain time (ms) 50% 1 66% 1 75% 1 80% 1 90% 2 95% 2 98% 2 99% 2 100% 11 (longest request)

我知道这是大的,但我curoius在这种情况下是一个限制因素。 这不是处理器(使用Java Mission Control进行采样时,应用程序运行在20%以下),而不是内存。 我在windows上运行它 – 也许这是原因?

我不能告诉你如何让它在windows下运行时表现更好,但如果你在linux中运行它,你可以在这里进行Jetty推荐的调优: http : //www.eclipse.org/jetty/documentation/current/ high-load.HTML总结:

sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216 sysctl -w net.ipv4.tcp_rmem=\”4096 87380 16777216\” sysctl -w net.ipv4.tcp_wmem=\”4096 16384 16777216\” sysctl -w net.core.somaxconn=4096 sysctl -w net.core.netdev_max_backlog=16384 sysctl -w net.ipv4.tcp_max_syn_backlog=8192 sysctl -w net.ipv4.tcp_syncookies=1 sysctl -w net.ipv4.ip_local_port_range=\”1024 65535\” sysctl -w net.ipv4.tcp_tw_recycle=1 sysctl -w net.ipv4.tcp_congestion_control=cubic

在运行代码时包含-server JVM参数。

然后尝试: ab -n 100000 -c 100 http://localhost:9090/test

(使用100个连接发出100,000个请求)

当我在我的windows7笔记本电脑(3岁)的VMWare播放器上运行的linux虚拟机中尝试时,我每秒获得超过100,000个请求。

总结

以上是内存溢出为你收集整理的运行“空”Undertow时,每秒HTTP请求的限制因素是什么?全部内容,希望文章能够帮你解决运行“空”Undertow时,每秒HTTP请求的限制因素是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞65 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容