我们有六个 Web 应用程序需要作为 32 位进程运行,但由于我们正在缓存的各种东西需要相当多的内存,由于各种原因,这不容易改变。没有一个应用程序需要超过 2GB,但合并的内存使用量将超过此。由于各种原因也不容易更改,我们计划在一对具有 16GB RAM 的 64 位服务器上运行所有这些,这对于所有 Web 应用程序组合内存需求来说是足够的内存。
这是我的担心。我知道 Windows 为每个进程分配一个虚拟地址空间,Win32 上 2GB 用户空间和 2GB 内核空间,Win64 上 8TB 用户空间和 8TB 内核空间(在大多数情况下)。然后操作系统会处理该地址空间的哪些部分映射到物理 RAM。我也知道 WoW64 子系统将处理在 64 位操作系统上运行 32 位进程。我对 WoW64 的理解不够深入,不知道它是如何做到的,我希望它能够映射不同 32 位进程的虚拟地址空间以利用所有可用的 RAM,但我担心它可能不会这样做并且该进程仍将竞争已以某种方式“耳朵标记”的同一组 RAM 以进行 32 位进程仿真。
我知道真正的解决方案是测试我们的目标环境和配置文件以查看发生了什么,但是更多关于在 WoW64 下如何管理物理 RAM 的信息会让人放心。