代码之家  ›  专栏  ›  技术社区  ›  Michael Anderson

如何改进jetty响应时间?

  •  5
  • Michael Anderson  · 技术社区  · 14 年前

    我正在尝试加速测试jetty(与使用apache进行比较)以提供动态内容。

    这些是运行在本地盒(OSX 10.5.8 mac book pro)。Apache几乎是开箱即用的(XAMPP发行版),我已经测试过Jetty 7.0.2和7.1.6

    Apache给出了我的尖峰时间:响应时间高达2000ms,但平均为50ms,如果去掉尖峰(约2%),则平均为每次调用10ms。(这是一个PHP hello world页面)

    Jetty没有提供任何峰值,但响应时间约为200毫秒。

    这是对本地主机的调用:8080/hello/与jetty一起分发,并以 java -jar start.jar .

    这对我来说似乎很慢,我想知道是不是只有我做错了什么。

    任何关于如何从码头获得更好数量的建议将不胜感激。

    谢谢

    5 回复  |  直到 14 年前
        1
  •  19
  •   the.duckman    14 年前

    好吧,既然我成功地在码头上运行了一个有流量的站点,我对你的观察非常惊讶。

    所以我试了你的测试。同样的结果。

    所以我反编译了Jetty附带的Hello Servlet。我不得不笑-它真的包括以下几行:

     Thread.sleep(200L);
    

    see 为了你自己。

        2
  •  5
  •   maaartinus    7 年前

    还要注意,你的速度测试实际上只是一个延迟测试,只要你知道你在测量什么就可以了。但是Jetty确实在延迟和吞吐量之间进行了权衡,因此通常有延迟更低的服务器,但吞吐量也更低。

    Web服务器的实际通信量不是3个非常繁忙的连接-1个浏览器将打开6个连接,因此这表示半个用户。更现实的流量是成百上千的连接,每一个都是空闲的。

    https://webtide.com/truth-in-benchmarking/ https://webtide.com/lies-damned-lies-and-benchmarks-2/

        3
  •  1
  •   Peter Knego    14 年前

    你一定要用轮廓仪检查一下。以下是如何使用Jetty设置远程分析的说明:

    http://sujitpal.sys-con.com/node/508048/mobile

        4
  •  0
  •   XecP277    14 年前

    根据我的经验,加速或性能优化任何应用程序或服务器都是很难做到的。您需要使用不同的工作模型多次进行基准测试,以定义您的峰值负载。一旦定义了需要优化和基准测试的配置/环境混合的峰值负载,就可能需要运行基准测试的5+次迭代。根据处理请求的工作线程数检查apache/jetty的配置,并尽可能使它们匹配。以下是一些建议:

    1. 货物应该来自另一个箱子。如果您没有第二个box/PC/server,请计算您的CPU/core并将测试设置为特定的CPU,对jetty/apache也要这样做。
    2. 这是因为你不能让另一台机器成为压力源。 运行多个工作负载模型

    要对测试建模,请执行以下两个阶段:

    1. 从1个线程开始,到5个线程,间隔10分钟以增加计数,

    将测试应用程序的度量(响应时间)与托管应用程序资源的服务器关联(使用sar、top和其他unix命令跟踪cpu和内存),其他一些进程可能会影响应用程序。(与apache jetty相关的内存将限制JVM内存配置,因此服务器启动并运行后,它不应更改内存使用情况)

        5
  •  0
  •   Christian Kuetbach    14 年前

    方法必须调用多次(1000次?),然后再编译为本机代码。