虚拟服务器上的 SQL Server 2008 Workgroup Edition 无交换

虚拟服务器上的 SQL Server 2008 Workgroup Edition 无交换

我从 Hosteurope 租了一台 4 GB 内存的虚拟服务器,包括 SQL Server 2008 Workgroup Edition 许可证。它运行正常,速度也很快,但每当我给它增加一些负载时,它就会耗尽内存,结果服务器就会崩溃。

值得一提的是,Hosteurope 的虚拟服务器系统不允许在服务器上使用交换。这就是为什么没有页面文件,当内存不足时,它就完全耗尽了。

Hosteurope 拒绝提供帮助或承担任何责任,但我真的希望 serverfault 这里的某个人可以帮助我。

我已经尝试将 SQL Server 中的“最大服务器内存”设置设为 2000,但没有任何区别。

问题症状 数据库服务器停止接受连接。

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。找不到或无法访问服务器。请验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接)

  • 重新启动 SQL Server 服务器不能解决问题。
  • 重新启动 Web 服务器并不能解决问题。
  • 重新启动安装了 SQL Server 的完整服务器,即可解决问题。

...直到下一次有一点负载,它又停止工作。

因此,现在我恳请您:

  • 帮我找出导致此行为的确切错误。我查看了系统和应用程序的事件日志,但都没有显示任何结论性信息。

  • 帮助弄清楚如何配置我的服务器/sql 服务器安装以使其不会崩溃。

主要解决方案 如果您希望在 Windows Server 上增加负载,请不要在禁用交换/页面文件的 Windows Server 上运行 SQL Server。这意味着,如果您希望在 DB 服务器上增加负载,请不要选择 HostEurope 作为您的主机!

二次解决方案 通过限制 SQL Server 上的并行工作者数量来提高可靠性,如下面的接受答案所述。

答案1

我有完全相同的 Host Europe 虚拟服务器,也遇到了同样的问题。我想我找到了解决方案。

在我看来,服务器上的并行性导致了这个问题。虚拟服务器有 24 个虚拟 CPU,这对于 4 GB 的 RAM 来说太多了。我在 SQL 实例的配置中做了以下更改(我的系统是德语的,我不知道英语 SQL 服务器的确切文本):

  1. 在 Management Studio 中打开实例的属性。
  2. 转到“高级”选项卡。
  3. 将最大并行度选项从 0 更改为 2。
  4. 在“内存”选项卡上,将服务器的最大内存更改为 1792 MB。

这似乎解决了我的问题。

答案2

首先 - Windows 本身并不交换,它有点不同(如果你在现有系统上运行 perfmon,你会注意到即使没有页面文件,它仍然会发生页面错误)参见https://serverfault.com/a/75027/3528了解详情。

您说服务器在加载时内存不足。您有日志或证据表明内存不足吗?如果内存真的不足,那么在 SQL Server 有机会拒绝您访问之前,通常就会发生非常糟糕的事情。事件日志中应该有一些事件可以为您提供有关正在发生的事情的线索。

答案3

在配置中启用最大服务器内存,为 SQL 服务器分配 3GB,为 Windows 服务器分配 1GB。

也许有帮助...

问候,

西瓦格

相关内容