EC2 Micro Instance只能使用nginx服务器处理多少用户?

时间:2013-10-14 16:01:29

标签: performance amazon-web-services nginx amazon-ec2 benchmarking

我有一个iOS社交应用程序。

此应用与我的服务器通话以进行更新&经常检索。主要是JSON的小文本。有时用户会上传我的web-server然后上传到S3 Bucket的图片。将不会从web-server

中检索图片或任何其他类型的文件

EC2 Micro Ubuntu 13.04实例运行PHP 5.5PHP-FPMNGINX。缓存由Elastic Cache使用Redis处理,数据库连接到单独的m1.large MongoDB服务器。由于新闻源可以是动态的,因此内容可以是相当动态的。

我是关于为性能配置NGINX的新手,我正在尝试查看我是否正确配置了服务器。

我正在使用Siege来测试我的服务器负载,但我找不到任何类型的统计信息,说明我的系统能够处理多少并发用户/页面加载,以便我知道我已经完成正确或错误的东西。

我的服务器能够处理多少并发用户/页面加载?

我想如果我无法掌握经验中的统计数据,我的micro instance应该是轻松,中等和极端的?

我知道还有其他一些问题要求类似的事情。但没有一个对类似系统提供任何估计,这正是我所寻求的。

2 个答案:

答案 0 :(得分:4)

由于Jonathan指出的原因,我没有在微实例上试过nginx。如果你消耗cpu爆发,你将受到非常严厉的限制,你的应用程序将无法使用。

如果您想遵循该路径,我建议:

尝试限制nginx和php5-fpm的cpu使用率,以确保你没有超过cpu惩罚的阈值。我没有想到阈值是什么。我认为微实例的主要问题是保持一致的cpu可用性。如果你翻过帽子就搞砸了。

尽可能尝试使用fastcgi_cache。你只想在真的需要的时候点击php5-fpm。

请记住,动态gzipping会吃掉很多cpu。我的意思是很多cpu(对于几乎没有cpu功率的实例)。如果你可以使用gzip_static,那就去做吧。但我相信你不能。

至于统计数据,你需要自己做。我有m1.small的统计数据,但没有micro的统计数据。首先让nginx提供一个只有很少kb的静态html文件。使用10个并发用户进行围攻基准测试模式10分钟并进行测量。确保你从一台更强大的机器上围攻。

siege -b -c10 -t600s'http:// private-ip /test.html'

你可能会看到cpu油门的影响!您需要关注的是每秒的事务数以及nginx可以提供的吞吐量。请记住,m1small max是35mb / s所以m1.micro会更小。

然后,转到json响应。尝试gzipping。查看每秒可以获得多少并发请求。

别忘了回到这里报告你的电话号码。

最好的问候。

答案 1 :(得分:1)

Micro实例的独特之处在于它们使用了可突发的配置文件。虽然您可以在短时间内获得两个2 ECU的性能,但在使用其突发分配后,它将被限制在大约0.1或0.2 ECU。最终分配重置,你可以再次获得2个ECU。

这很大程度上取决于你的应用程序CPU /内存的重量。听起来你已经很好地优化了它。