我非常喜欢Elastic Beanstalk,并设法在Tomcat7 64位容器上使用SSL启动并运行我的webapp(Spring MVC,Hibernate,...)。
我最关心的是性能(我认为使用亚马逊云会对此有所帮助)。
为了衡量我的服务器性能,我使用的是blitz.io(它使用亚马逊云让多个客户端同时访问我的网络服务)。
我的第一个简单的性能测试已经让我想知道: 我对健康检查网址进行了基准测试(基本上只打印“我很好”)。
没有SSL:看起来很好。 13点击/秒,响应时间为9毫秒 230 Hits / s,响应时间为8ms
使用SSL:不太好。 13点击/秒,响应时间为44毫秒(好的,由于加密开销,这应该有点大) 30点击/秒,响应时间为3.6秒!
向上走高会给我留下连接超时(超时= 10秒)。
我尝试在后台使用更大的EC2实例,结果基本相同。
如果我没记错,EC2实例之前的Load Balancer将作为SSL加密的端点。如何提高性能?
这可以用弹性豆茎来完成吗?或者我是否需要设置自己的负载均衡器等?
我也使用Heroku进行了一些测试(虽然技术堆栈略有不同,但是玩游戏!与SpringMVC相比)。在这里,我也看到了增加的响应时间,但它基本保持不变。我假设他们正在使用性能相当的SSL端点。我如何获得Elastic Beanstalk?
答案 0 :(得分:4)
看来我的测试方法存在缺陷。
亚马逊的Elastic Load Balancers似乎每秒最多可达10k SSL请求。
答案 1 :(得分:1)
SSL需要在打开安全传输通道之前进行握手。一旦完成握手(包括几次往返),就会传输数据。
当您使用负载测试器点击页面时,它正在为每次点击进行握手。它没有重用已经建立的会议。
这不是浏览器的行为方式。 Browse将进行一次握手,然后在一段时间内为所有后续请求重用开放加密会话。
所以,我不会非常担心结果。我建议你尝试像www.browsermob.com这样的工具,看看有多个图像,js,css等的整页需要多长时间来加载SSL和非SSL。这将是一个公平的比较。
可帮助?