症状
假设您使用的是 Microsoft SQL Server 2014 或2016。 检查 NUMA 节点上的可用内存使用率时,你会发现数据库节点内存(KB)小于目标大小的2%。 出现这种情况时,您可能会收到以下 "内存不足" 错误消息:
日期/时间spid36s 无法分配 BUFs: FAIL_BUFFER_ALLOCATION 1
即使 SQL Server 中有大量可用的内存,也会出现此问题。
原因
当数据库节点内存(KB)变得较少时,可能会出现 "内存不足" 错误 目标大小的2% 以上,并且它不能再放弃节点上的数据库页面以获取免费页面。
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。
解决方案
在 SQL Server 的以下累积更新中修复了此问题:
关于 SQL Server 的累积更新:SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
注意应用此修补程序后,如果本地节点上的数据库页面数量低于其目标页面的2%,SQL Server 将能够从远程缓冲区节点回收页面。
参考
了解 术语 Microsoft 用于描述软件更新。