仅使用 nginx 服务器,EC2 微型实例应该能够处理多少用户?

Jon*_*rft 4 performance benchmarking nginx amazon-ec2 amazon-web-services

我有一个 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

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

ddu*_*tra 5

由于 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分钟的攻城基准模式并测量。确保您正在围攻更强大的机器。

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

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

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

并且不要忘记回到这里并报告您的数字。

此致。