我在服务器上有 60 Gb 的 RAM。Windows 2008,32 位,带 PAE。
一个 Sql Server 2008 Express 实例可以使用 1 Gb 的 RAM。所以如果我安装 60 个实例,每个实例都可以使用 1 Gb 的 RAM,对吗?
第二个问题,如果我安装 64 位系统并使用多个 Express 实例会怎样?
我在服务器上有 60 Gb 的 RAM。Windows 2008,32 位,带 PAE。
一个 Sql Server 2008 Express 实例可以使用 1 Gb 的 RAM。所以如果我安装 60 个实例,每个实例都可以使用 1 Gb 的 RAM,对吗?
第二个问题,如果我安装 64 位系统并使用多个 Express 实例会怎样?
哦,我的...如果您有 60Gb 的 RAM,请省去麻烦并使用 64 位操作系统。此外,60 个 SQL 实例听起来像是一种非常奇怪的做事方式,我不能凭良心推荐它。这么高的服务器成本,一个适当的 SQL 许可证肯定会在预算中吗?
Windows 在内存使用方面也非常智能。它将根据需要释放(页面)内存。我已经看到 SQL Server 消耗了服务器中 95% 的可用内存,并且服务器上的其他服务被适当地搁置了。
- 更新 -
从您的评论来看,是什么让您认为 64 位 Windows 正在吃掉您的 RAM?如果您正在查看任务管理器中“物理内存”组中的“免费”读数,这不是检查的合适位置。
- 更新 -
关于您在下面的更多评论,您真正想知道的是:哪个更高效 - 1x40Gb 进程或 40x1Gb 进程,这个问题不能轻易回答。
有点像这样:你需要运送 40 个人。你买 40x VW Polo's,还是买 40 座巴士?它们的成本都差不多。这真的取决于你想做什么。每个人都去同一个地方吗?他们需要以相同的速度到达那里吗?他们需要安慰吗?他们需要安全吗?他们是否互相憎恨,是否会一看到对方就刺伤对方的脸?
应用于您的 SQL Server 场景,以及一些假设(基于您在 ServerFault 上提出的其他问题),我可以断然地说,您希望一个庞大的 SQL Server 实例消耗尽可能多的 RAM,因为它可以得到它贪婪的小手。
你想做什么?
通过不支付 SQL 许可证来省钱?
托管多个系统?
运行 32 位 Windows 和 60GB 不会非常有效。
这个盒子上有多少个处理器?我会有点担心每个 SQL Server 实例的调度情况。每个实例都需要自己的内存占用,需要修补自己的二进制文件,并且必须由 Windows 安排运行。
另请记住,SQL Server Express 的文件大小限制为 4gb。
对于这样的盒子,您有什么样的灾难恢复计划?还有什么需要60个实例?是否严格避免 1GB RAM 限制?SQL 将根据需要占用尽可能多的内存,但您还可以向实例添加多个数据库吗?是否有一些安全或其他需要?
看着这样的东西,我想知道像 Hyper-V 或 ESXi 这样的东西作为解决方案是否不能更好地工作。您可以根据需要使用一个 SQL Server Express 实例创建任意数量的 VM(不确定是否可以创建 60 个,但请参阅我之前对此的评论)。如果您想添加另一台服务器以扩展容量,这将为您提供更大的灵活性
我对这个确切的点很好奇,所以我用我写的一个内存采集器应用程序做了一些研究。我发现是的,32 位的 PAE 将允许同一应用程序的许多单独运行实例消耗超过 4GB 的物理内存(没有页面文件交换),每个实例都有通常的 <=2GB 限制。
本文中的“......多个进程可以立即受益......”这一点有所涉及。
以下是关于各种类型记忆的文章列表,以及一些被广泛误解的观点。
我还用我的 32 位采集器在 64 位上进行了测试,并获得了相同的结果。