如何使用Elastic Beanstalk提高SSL性能

时间:2012-07-03 15:30:57

标签: performance ssl amazon-web-services load-balancing elastic-beanstalk

我非常喜欢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?

2 个答案:

答案 0 :(得分:4)

看来我的测试方法存在缺陷。

亚马逊的Elastic Load Balancers似乎每秒最多可达10k SSL请求。

看到这篇伟大的文章: http://blog.mattheworiordan.com/post/24620577877/part-2-how-elastic-are-amazon-elastic-load-balancers

答案 1 :(得分:1)

SSL需要在打开安全传输通道之前进行握手。一旦完成握手(包括几次往返),就会传输数据。

当您使用负载测试器点击页面时,它正在为每次点击进行握手。它没有重用已经建立的会议。

这不是浏览器的行为方式。 Browse将进行一次握手,然后在一段时间内为所有后续请求重用开放加密会话。

所以,我不会非常担心结果。我建议你尝试像www.browsermob.com这样的工具,看看有多个图像,js,css等的整页需要多长时间来加载SSL和非SSL。这将是一个公平的比较。

可帮助?