60Gb 内存、32 位操作系统和 PAE 与 64 位操作系统

60Gb 内存、32 位操作系统和 PAE 与 64 位操作系统

我的服务器上有 60 Gb 的 RAM。Windows 2008,32 位,带 PAE。

一个 Sql Server 2008 Express 实例可以使用 1 GB 的 RAM。因此,如果我安装 60 个实例,每个实例都可以使用 1 GB 的 RAM,对吗?

第二个问题,如果我安装 64 位系统并使用多个 Express 实例会怎样?

答案1

哦,天哪……如果您有 60GB 的 RAM,请省去麻烦,使用 64 位操作系统。另外,60 个 SQL 实例听起来是一种非常奇怪的做法,我无法凭良心建议这样做。这种规模的服务器要花多少钱,合适的 SQL 许可证肯定在预算之内吧?

在内存使用方面,Windows 也非常智能。它会根据需要释放(页面)内存。我曾见过 SQL Server 消耗了服务器中 95% 的可用内存,而服务器上的其他服务则被适当地搁置。

- 更新 -

根据您的评论,是什么让您认为 64 位 Windows 正在消耗您的 RAM?如果您正在查看任务管理器中“物理内存”组中的“可用”读数,则这不是检查的合适位置。

- 更新 -

关于下面的更多评论,您真正想知道的是:哪个更有效率 - 1x40Gb 进程,还是 40x1Gb 进程,这个问题无法轻易回答。

有点像这样:你需要运送 40 个人。你是买 40 辆大众 Polo,还是买一辆 40 座大巴?它们的价格差不多。这真的取决于你想做什么。每个人都去同一个地方吗?他们需要以相同的速度到达那里吗?他们需要舒适吗?他们需要安全吗?他们是否彼此憎恨,是否一见面就会互相捅刀子?

应用于您的 SQL 服务器场景和一些假设(基于您在 ServerFault 上提出的其他问题),我可以明确地说,您想要一个庞大的 SQL Server 实例消耗尽可能多的 RAM,因为它贪婪的小手可以得到它。

答案2

你想做什么?

不支付 SQL 许可证费用可以省钱吗?

托管多个系统?

运行 32 位 Windows 和 60GB 的效率不会很高。

答案3

这个盒子上有多少个处理器?我有点担心每个 SQL Server 实例的调度情况。每个实例都需要自己的内存占用、自己的二进制文件需要修补,并且必须由 Windows 调度才能运行。

还请记住,SQL Server Express 在文件大小方面有 4gb 的限制。

对于这样的设备,您制定了什么样的灾难恢复计划?另外,为什么需要 60 个实例?是否严格地为了避免 1GB RAM 限制?SQL 将占用所需的内存,但您也可以添加更多内存,将多个数据库添加到实例中?是否有一些安全性或其他需求?

看到这种情况,我想知道 Hyper-V 或 ESXi 之类的东西是否能更好地解决问题。您可以根据需要创建任意数量的虚拟机(不确定是否可以创建 60 个,但请参阅我之前对此的评论),每个虚拟机都有一个 SQL Server Express 实例。如果您想添加另一台服务器来扩展容量,这将为您提供更大的灵活性

答案4

我对这一点非常好奇,因此我对自己编写的内存抓取应用程序进行了一些研究。我发现,32 位 PAE 允许同一应用程序的许多单独运行实例使用超过 4GB 的物理内存(不进行页面文件交换),每个实例通常的限制为 <=2GB。

在“...多个流程可以立即受益...”中有所涉及本文

这里是有关各种记忆类型的文章列表,以及一些被广泛误解的信念。

我也使用 32 位抓取器在 64 位上进行了测试,得到了相同的结果。

相关内容