4

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

这个应用程序经常与我的服务器对话以进行更新和检索。主要是 JSON 格式的小文本。有时用户会上传图片,web-server然后我会上传到S3 Bucket. 不会从web-server

EC2 Micro Ubuntu 13.04实例运行,并且PHP 5.5。缓存由using处理,数据库连接到单独的服务器。内容可以是相当动态的,因为新闻源可以是动态的。PHP-FPMNGINXElastic CacheRedism1.large MongoDB

在配置性能方面,我是一个完全的新手,NGINX我正在尝试查看我是否正确配置了我的服务器。

Siege用来测试我的服务器负载,但我找不到任何关于我的系统应该能够处理多少并发用户/页面负载的统计数据,以便我知道我做对了什么或做错了什么。

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

我想如果我不能从经验中获得统计数据,那么对我来说什么应该是容易的、中等的和极端的micro instance

我知道还有其他几个问题在问类似的问题。但是没有人为类似的系统提供任何类型的估计,这正是我正在寻找的。

4

2 回答 2

5

由于乔纳森指出的原因,我没有在微实例上尝试过 nginx。如果您消耗 cpu 爆发,您将受到非常严重的限制,您的应用程序将变得无法使用。

如果你想走这条路,我会推荐:

尝试限制 nginx 和 php5-fpm 的 cpu 使用率,以确保您不会超过 cpu 惩罚的门槛。我不知道那个门槛是什么。我相信微实例的主要问题是保持一致的 CPU 可用性。如果你越过盖子,你就会被拧紧。

如果可能,尝试使用 fastcgi_cache。只有在真正需要时,您才想点击 php5-fpm。

请记住,即时 gzip 会消耗大量 cpu。我的意思是很多cpu(对于一个几乎没有cpu能力的例子)。如果您可以使用 gzip_static,请执行此操作。但我相信你不能。

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

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

通过这样做,您可能会看到 CPU 油门的效果!您要关注的是每秒的事务以及 nginx 可以提供多少吞吐量。请记住,m1small max 为 35mb/s,因此 m1.micro 会更小。

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

别忘了回来报告你的数字。

此致。

于 2013-10-14T18:42:11.443 回答
1

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

这在很大程度上将归结为您的应用程序的 CPU/内存重度。听起来您已经对其进行了很好的优化。

于 2013-10-14T17:52:49.233 回答