我正在为Amazon EC2网络上的网站选择AMI。看起来Ubuntu实例有32或64位版本。据推测,64位系统为您提供了更多的内存地址空间,这很好。但是,我想知道找到预编译的二进制文件是否有问题。我最好坚持使用32位?我的Web应用程序不是非常耗费内存。
为什么我会选择一个而不是另一个什么是利弊?
答案 0 :(得分:13)
您应该根据所需服务器的大小做出决定。
32位AMI仅在m1.small
上运行,而64位AMI仅在m1.large
和m1.xlarge
个实例上运行(加上相应的高CPU变体)。
更大的实例显然需要更多的钱,理论上价格随着性能线性变化。但是,我发现大型和xlarge实例实际上比小实例具有更多性能/美元。
这似乎是由于I / O控制器上的争用,而不是由于32位或64位架构。如果您正在对EC2进行认真的工作,我建议您使用m1.large
实例以及需要的64位AMI。
答案 1 :(得分:9)
在64位部署期间,我的团队中出现的一个问题是,64位计算机上的指针更大,因此我们的内存耗尽比我们想象的要快。
我知道,这不是答案。只是一个回头。
答案 2 :(得分:9)
截至2012年3月8日,Amazon EC2支持所有实例类型的64位AMI。
这使得此列表中的先前答案已过时,因为它们假设不同的实例类型需要不同的体系结构选择。
我建议始终使用64位AMI,以便您在更改实例的实例类型时具有最大的灵活性,并且从该实例创建的自定义AMI将适用于任何其他实例类型。
我在这里写了更多关于此的内容:http://alestic.com/2012/03/ec2-64-bit
在读者对该文章的评论中有一些很好的讨论要点,其中32位可能比64位更好,但请记住这限制了你可以运行的实例类型。
答案 3 :(得分:2)
如果成本优先于32位。 如果性能很重要,请选择64位。
答案 4 :(得分:2)
已经回答了基础知识。我只想指出相对较新的微实例支持32位和64位。这(尚未)适用于小实例。
答案 5 :(得分:1)
Con:就像RKitson所说,64位指针占用的内存空间增加了一倍。如果这意味着你的东西现在不适合CPU缓存,那么这可能会降低性能。
Pro:你获得的注册数量增加了一倍 - 从中受益的程序将显示出很多性能提升。 (第二个专业版:64位版本的软件包都是使用SSE支持编译的......这也可以提高性能,具体取决于您的工作负载)
我只会构建两个图像并对它们进行基准测试,这比理论化更容易,并且不应该花费几天时间。
答案 6 :(得分:1)
除非你出于性能原因确实需要64位,否则我会说32位。您可以在m1.small实例上运行32位Ubuntu,花费10c /实例小时,或者每月约75美元;相比之下,64位最便宜的选项是m1.large,其成本是其四倍 - 40c /实例小时或约300美元/月。
答案 7 :(得分:0)
64位为您提供更多的内存地址空间,并且可以在处理器密集型任务中表现更好。假设您使用PHP和Mysql等标准软件,查找二进制文件应该不成问题。除非你有一些不能在64位下运行的稀有库,否则我会使用64位。