23

我正在为我在 Amazon EC2 网络上的网站选择 AMI。似乎 Ubuntu 实例有 32 位或 64 位版本。大概 64 位系统会给你更多的内存地址空间,这很好。但是,我想知道查找预编译的二进制文件是否有问题。我最好坚持使用 32 位吗?我的 Web 应用程序不是非常占用内存。

为什么我会选择一个而不是另一个,优点和缺点是什么?

4

8 回答 8

13

您应该根据所需服务器的大小做出决定。

32 位 AMI 仅在 上运行,而m1.small64 位 AMI 仅在实例上运行(加上相应的高 CPU 变体)。m1.largem1.xlarge

更大的实例显然需要更多的钱,理论上价格与性能成线性关系。但是,我发现大型和 xlarge 实例实际上比小型实例具有更高的性能/美元。

这似乎不是由于 32 位或 64 位架构,而是由于 I/O 控制器的争用。如果您在 EC2 上做认真的工作,我建议您使用m1.large实例,以及所需的 64 位 AMI。

于 2009-02-10T23:40:32.280 回答
9

在 64 位部署期间,我的团队出现的一个问题是 64 位机器上的指针更大,因此内存耗尽的速度比我们想象的要快。
不是答案,我知道,只是提醒一下。

于 2009-02-10T23:33:58.520 回答
9

自 2012 年 3 月 8 日起,Amazon EC2 支持所有实例类型的 64 位 AMI。

这使得此列表中的先前答案已过时,因为它们假设不同的实例类型需要不同的架构选择。

我建议始终使用 64 位 AMI,以便您在更改实例的实例类型方面拥有最大的灵活性,并且从该实例创建的自定义 AMI 将适用于任何其他实例类型。

我在这里写了更多关于此的内容:http: //alestic.com/2012/03/ec2-64-bit

读者对该文章的评论中有一些很好的讨论点,用于专门的异常,其中 32 位可能比 64 位执行得更好,但请记住,这限制了您可以在哪些实例类型上运行。

于 2013-04-25T23:06:38.133 回答
2

如果成本是优先考虑的,那就选择 32 位。如果性能很重要,请选择 64 位。

于 2009-02-19T11:15:02.623 回答
2

基础已经回答了。我只想指出,相对较新的微型实例同时支持 32 位和 64 位。这(还)不适用于小型实例

于 2011-04-15T18:11:29.077 回答
1

缺点:就像 RKitson 所说,64 位指针占用的内存空间是原来的两倍。如果这意味着你的东西现在不适合 CPU 缓存,这可能会降低性能。

优点:您获得双倍的寄存器 - 从中​​受益的程序将显示出很多性能改进。(第二个专业人士:64 位版本的软件包都在 SSE 支持下编译......这也可以提高性能,具体取决于您的工作量)

我只会构建两个图像并对其进行基准测试,这比理论化更容易,也不应该花费数天时间。

于 2009-02-10T23:40:16.417 回答
1

我会说选择 32 位,除非您出于性能原因确实需要 64 位。您可以在 m1.small 实例上运行 32 位 Ubuntu,成本为 10c/实例小时,或约 75 美元/月;相比之下,64 位最便宜的选择是 m1.large,它的成本是它的四倍——40c/实例小时或大约 300 美元/月。

于 2009-02-11T00:05:56.760 回答
0

64 位为您提供更多内存地址空间,并且可以更好地执行处理器密集型任务。假设您使用 PHP 和 Mysql 等标准软件,查找二进制文件应该不是问题。除非您有一些可能无法在 64 位下运行的稀有库,否则我会选择 64 位。

于 2009-02-10T23:36:16.597 回答