SQL 2008 SP2 上的 FAIL_VIRTUAL_RESERVE

SQL 2008 SP2 上的 FAIL_VIRTUAL_RESERVE

我的环境是 SQL 2008 Standard x86 SP2,在 Server 2008 Standard 上运行,配备 4GB RAM 和启用 AWE。我还将 -g1024 设置为启动参数。

我在 SQL 错误日志中收到以下错误:虚拟分配字节失败:FAIL_VIRTUAL_RESERVE 327680

然后稍后:错误:701,严重性:17,状态:123。资源池“内部”中的系统内存不足以运行此查询。

这个过程会重复进行,直到服务器最终停止处理查询。

我强烈怀疑该问题与链接服务器有关,因为我正在使用“Microsoft OLEDB Provider for ODBC Drivers”提供程序链接到 Sybase ASE 15 服务器。我如何证明是否存在这种情况和/或解决此问题?

谢谢。

编辑:这是错误条件下 MEMORYCLERK_SQLGENERAL 的当前输出。

VM Reserved 0
VM Committed    0
AWE Allocated   0
SM Reserved 0
SM Committed    0
SinglePage Allocator    2168
MultiPage Allocator 2056

答案1

首先 - 您的最大服务器内存是否也为 SQL Server 实例设置?如果没有,考虑到您拥有的内存量有限,您的情况可能需要这样做。

关于您的主要问题,需要检查以下几点:

所以我建议在这里采用消除法。另外,如果您可以使用特定的链接服务器查询重现 OOM,则可以运行内存查询来查看前后情况,这将是一个很好的指标。还要检查链接服务器提供程序案例,以确保您没有遇到已知问题。[顺便说一句,由于这不是 Oracle 提供程序 - 我知道有些情况下,如果 Oracle 链接服务器正在进程中运行,您会收到这些消息,而将其从进程中移除会有所帮助。]

此外,您可能确实需要额外的内存,因此长期解决方案可能是扩展到更多内存和 x64。您可能能够调整保留的 MTL 和最大内存,但这可能是只能通过新架构和增加内存来解决的内存压力。

相关内容