【问题标题】:How many users should a EC2 Micro Instance be able to handle only with a nginx server?一个 EC2 微实例应该能够仅使用 nginx 服务器处理多少用户?
【发布时间】:2023-03-06 01:08:01
【问题描述】:

我有一个 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 来说,什么应该是简单、中等和极端?

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

【问题讨论】:

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


    【解决方案1】:

    由于 Jonathan 指出的原因,我没有在微实例上尝试过 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 最大值为 35mb/s,因此 m1.micro 会更小。

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

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

    最好的问候。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-20
        • 2012-02-25
        • 1970-01-01
        • 1970-01-01
        • 2011-11-17
        • 2018-02-17
        • 2020-03-20
        • 1970-01-01
        相关资源
        最近更新 更多