2010-10-03 107 views
0

我们有一个windows server 2008 R2 32G内存机器,这显然是一个64位操作系统。我们安装了XAMPP 32位版本,配有32位MySQL和PHP。然后我们托管一个用PHP编写的webmail系统。我的问题是:那些32位MySQL和32位PHP会消耗超过4G内存的操作系统?我们是否必须安装64位MYSQL和PHP来实现这个结果?在64位操作系统上运行的32位程序内存消耗

谢谢

+0

关闭以迁移到serverfault.com。 – webbiedave 2010-10-04 20:01:03

回答

0

基于x86架构的指令集,在32位编译的软件将永远不会成为能够分配比4GiB更多,因为他们将不能够直接访问该存储器。由于它们使用32位来表示内存地址,并且由于2^32 = 4GiB(四舍五入),所以它们将无法进一步表示任何地址。

在附注中,软件可以通过使用PAE在32位系统上间接处理超过4GiB的内存,但必须明确开发该软件才能使用该功能。

您需要每个软件及其库的64位版本,否则即使操作系统识别出所有内存,您也将无法直接使用4GiB以上的版本。

+0

这不完全正确。一个操作系统可以利用[页面地址扩展](http://en.wikipedia.org/wiki/Physical_Address_Extension),尽管虚拟内存地址空间仍然是4GB。 (但是,请参阅特定操作系统限制/ impls的详细信息。) – 2010-10-03 04:05:10

+0

他的操作系统已经是64位,我从未提及OS 32位可能永远不会超过4GiB,只有以32位编译的软件可能无法寻址直接超过4GiB。就我所知,PAE机制并未在XAMPP中植入。 – Soravux 2010-10-03 04:08:02

相关问题