我们有六个网络应用程序需要以32位进程运行但由于我们正在缓存的各种内容需要相当多的内存,由于各种原因这不容易改变。没有一个应用程序需要超过2GB,但合并的内存使用量将超过这个。由于各种原因也不容易改变,我们计划在一对64位服务器上运行这些服务器,这些服务器具有16GB的RAM,足够的内存可满足所有Web应用程序的内存需求。
这是我的担心。据我所知,Windows为每个进程分配一个虚拟地址空间,在Win32和8TB用户空间上分配2GB用户空间和2GB内核空间,在Win64中分配8TB内核空间(在大多数情况下)。然后操作系统处理该地址空间的哪些部分映射到物理RAM。我也明白WoW64子系统将处理在64位操作系统上运行32位进程。我不太了解WoW64会知道它会如何做到这一点,我希望它能映射不同32位进程的虚拟地址空间以利用所有可用的RAM,但我担心它可能不会这样做并且该过程仍然会竞争同样的RAM集合,这些RAM已经以某种方式“标记”为32位进程仿真。
我知道真正的解决方案是测试我们的目标环境和配置文件以查看正在发生的事情,但是有关如何在WoW64下管理物理RAM的更多信息将令人放心。
答案 0 :(得分:2)
没有“耳标”32位进程RAM。物理RAM可供操作系统使用,并根据需要提供给进程,无论它们是32位还是64位。 Wow64子系统不是虚拟机或32位进程运行它的进程。 Wow64子系统是一组shim库,可处理32位到64位,反之亦然。