vlambda博客
学习文章列表

别再误人子弟了-tomcat、undertow、jetty性能对比

在网上搜索查询发现清一色的都是说undertow高并发性能优于tomcat,并且还提供了各种实验依据以作证明,但是我私下测试发现情况和网上大部分结果并不一致。

简单接口测试

    @GetMapping("/test")
   public String test() {
       return UUID.randomUUID().toString();
  }

这是第一次测试的接口,使用jemter每秒600个线程调用这个接口。

Tomcat

Undertow

别再误人子弟了-tomcat、undertow、jetty性能对比

Jetty

别再误人子弟了-tomcat、undertow、jetty性能对比

结论

在简单接口中,发现tomcat对于cpu的占用是最低的,而且吞吐量最高。另外jetty停止测试花费了最长的时间导致吞吐量变低。

简单接口下吞吐量:tomcat>jetty>undertow

cpu:tomcat>jetty>undertow

复杂接口测试

别再误人子弟了-tomcat、undertow、jetty性能对比

Tomcat

别再误人子弟了-tomcat、undertow、jetty性能对比

Undertow

Jetty

结论

在稍复杂的接口测试下,tomcatunderwow的差距并没有很大,但是tomcat在吞吐量和cpu方面依然占据了稍小的优势,jetty与前两者存在差距。

复杂接口下吞吐量:tomcat>undertow>jetty

cpu:tomcat>undertow>jetty

从结果来看,tomcat依然是最稳定的服务器,而不是网上各种博主说的undertow更优。而jetty更适合长连接的服务,但是长连接我更倾向于选择nettyundertow更适合用于IO密集型服务器,或者文件服务器使用undertow会是一个不错的选择,但是在一般情况下还是老老实实的使用Springboot默认的tomcat吧。