如果是小型实例,1.7 GB 内存是否会因 32 位处理器而成为瓶颈?或者选择 64 位微型实例是否会因为其 64 位而提供更好的性能?我对性能感到困惑,无法理清思路。即使没有固定的答案,有人能列出我在选择之前应该考虑的要点吗?如果有帮助,这是我的配置:
1 个微型/小型实例,通过 Elastic Beanstalk 运行。托管在 GWT 中创建的 Web 应用程序,并且是 mongoDB 从属服务器。1
个大型 DB 服务器,作为 mongoDB 主服务器运行。Web 应用程序查询 DB 服务器以获取数据,从属服务器是只读的。
webapp 运行 mongod、memcached、apache 和 tomcat。
PS:我们需要一个amazon-beanstalk
标签。
答案1
这不一定是性能问题,而是内存寻址问题。如果您要使用大量内存,则需要 64 位选项。如果内存小于 4 GB,只要您运行 32 位程序,32 位就可以正常工作。
考虑到您引用的内存量,这无关紧要。处理器调优比磁盘访问、应用程序设计架构和网络速度更令人担忧。您的处理器性能差异就像担心汽车中的布座套对汽车燃油经济性的影响有多大,同时忽略了轮胎压力、驾驶行为和发动机调优。
答案2
微型实例(0.6GB RAM)仅在短周期 CPU 突发情况下性能优于小型实例(1.7GB RAM),因为它可以使用 2 个计算单元而不是 1 个。
对于 Web 应用程序来说,小型实例会好得多。但价格要贵 4 到 5 倍。
32 位或 64 位没有区别。
答案3
64 位通常不会提高性能,而且可能会损害性能,除非您的应用程序需要处理超过 2GB 的 RAM。由于这在 1.7GB 实例上不太可能发生,所以我不会担心使用 64 位。您的小型实例通常比微型实例性能更好,因为它拥有更多的内存(尽管微型实例在短暂的高工作负载下可以将其 CPU 爆发到比小型实例更高的水平)。