1

我真的很喜欢 Elastic Beanstalk,并设法在 Tomcat7 64 位容器上使用 SSL 启动并运行我的 web 应用程序(Spring MVC、Hibernate 等)。

我主要关心的是性能(我认为在这里使用亚马逊云会有所帮助)。

为了对我的服务器性能进行基准测试,我使用了 blitz.io(它使用亚马逊云让多个客户端同时访问我的网络服务)。

我的第一个简单性能测试已经让我想知道:我对健康检查 url 进行了基准测试(基本上只是打印“我没事”)。

没有 SSL:看起来不错。13 Hits/s,响应时间为 9ms 230 Hits/s,响应时间为 8ms

使用 SSL:不太好。13 Hits/s,响应时间为 44ms(好吧,由于加密开销,这应该有点大) 30 Hits/s,响应时间为 3.6s!

走高给我留下了连接超时(超时= 10s)。

我尝试在后台使用更大的 EC2 实例,结果基本相同。

如果我没记错的话,EC2 实例之前的负载均衡器用作 SSL 加密的端点。如何提高这种性能?

这可以用弹性豆茎完成吗?还是我需要设置自己的负载均衡器等?

我还使用 Heroku 进行了一些测试(尽管技术堆栈略有不同,play! vs. SpringMVC)。在这里,我还看到响应时间增加了,但基本保持不变。我假设他们正在使用性能相当好的 SSL 端点。我如何为 Elastic Beanstalk 获得它?

4

2 回答 2

4

看来我的测试方法有缺陷。

Amazon 的弹性负载均衡器似乎每秒可以处理 10k SSL 请求。

请参阅这篇精彩的文章:http: //blog.mattheworiordan.com/post/24620577877/part-2-how-elastic-are-amazon-elastic-load-balancers

于 2012-07-23T15:43:11.260 回答
1

SSL 需要在打开安全传输通道之前进行握手。一旦握手完成,这涉及到几个往返,数据就会被传输。

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

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

所以,我不会很担心结果。我建议您尝试使用 www.browsermob.com 之类的工具来查看包含许多图像、js、css 等的完整页面需要多长时间才能通过 SSL 与非 SSL 加载。这将是一个公平的比较。

有帮助吗?

于 2012-07-09T14:57:03.303 回答