我有一个iOS社交应用程序。
此应用与我的服务器通话以进行更新&经常检索。主要是JSON的小文本。有时用户会上传我的web-server
然后上传到S3 Bucket
的图片。将不会从web-server
EC2 Micro Ubuntu 13.04
实例运行PHP 5.5
,PHP-FPM
和NGINX
。缓存由Elastic Cache
使用Redis
处理,数据库连接到单独的m1.large
MongoDB
服务器。由于新闻源可以是动态的,因此内容可以是相当动态的。
我是关于为性能配置NGINX
的新手,我正在尝试查看我是否正确配置了服务器。
我正在使用Siege
来测试我的服务器负载,但我找不到任何类型的统计信息,说明我的系统能够处理多少并发用户/页面加载,以便我知道我已经完成正确或错误的东西。
我的服务器能够处理多少并发用户/页面加载?
我想如果我无法掌握经验中的统计数据,我的micro instance
应该是轻松,中等和极端的?
我知道还有其他一些问题要求类似的事情。但没有一个对类似系统提供任何估计,这正是我所寻求的。
答案 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 /内存的重量。听起来你已经很好地优化了它。