SQL Server 2016遇到内存不足或会话超出服务器允许的最大值

问题描述 投票:0回答:1

在SQL Server 2016中,我们正在获取错误的堆栈转储

内存不足或配置的会话数超过服务器允许的最大值

这是从SQL Server 2014新升级到SQL Server 2016(SP2)。它位于VM上,具有48 GB的内存。发生此错误时,最大内存设置为24GB,因为我说这个错误我将MAX服务器内存增加到36 GB。

但这只是SSIS数据库服务器,这就是之前分配24 GB的原因,我非常怀疑它是因为内存压力

版:

Microsoft SQL Server 2016(SP2)(KB4052908) - 13.0.5026.0(X64)

错误:

错误:17300,严重性:16,状态:1。(参数:)。由于格式化期间出错,因此以简洁模式打印错误。将跳过跟踪,ETW,通知等。

IO完成侦听器(0x8c4)工作程序0x0000006B1F680160在节点0上似乎是非屈服的。近似使用的CPU:内核0毫秒,用户0毫秒,间隔:15038。

错误:17312,严重性:16,状态:1。 由于启动任务时出错(设置状态3),SQL Server正在终止系统或后台任务SSB任务。

错误:28709,严重性:16,状态:19。 Dispatcher无法创建新线程。

错误:17300,严重性:16,状态:1。 SQL Server无法运行新的系统任务,原因是内存不足或配置的会话数超过服务器允许的最大值。验证服务器是否有足够的内存。使用带有“用户连接”选项的sp_configure可以检查允许的最大用户连接数。使用sys.dm_exec_sessions检查当前会话数,包括用户进程。

错误:17312,严重性:16,状态:1。 由于启动任务时出错(设置状态1),SQL Server正在终止系统或后台任务XStoreLeaseRenewalTask​​2。

错误:17803,严重性:20,状态:13。 连接建立期间存在内存分配故障。减少不重要的内存负载,或增加系统内存。连接已关闭。 [客户:]

错误:17312,严重性:16,状态:1。 由于启动任务时出错(设置状态1),SQL Server正在终止系统或后台任务XStoreLeaseRenewalTask​​。

错误:9602,严重性:16,状态:1。 无法启动系统任务,错误代码为28709,状态为19。

错误:28709,严重性:16,状态:19。 Dispatcher无法创建新线程。

错误:17803,严重性:20,状态:13。 连接建立期间存在内存分配故障。减少不重要的内存负载,或增加系统内存。连接已关闭。 [客户:]

错误:17803,严重性:20,状态:13。 连接建立期间存在内存分配故障。减少不重要的内存负载,或增加系统内存。连接已关闭。 [客户:]

错误:17300,严重性:16,状态:1。 SQL Server无法运行新的系统任务,原因是内存不足或配置的会话数超过服务器允许的最大值。验证服务器是否有足够的内存。使用带有“用户连接”选项的sp_configure可以检查允许的最大用户连接数。使用sys.dm_exec_sessions检查当前会话数,包括用户进程。

错误:28709,严重性:16,状态:19。 Dispatcher无法创建新线程。

错误:17312,严重性:16,状态:1。 由于启动任务时出错(设置状态1),SQL Server正在终止系统或后台任务SSB任务。

错误:28709,严重性:16,状态:19。 Dispatcher无法创建新线程。

错误:9602,严重性:16,状态:1。 无法启动系统任务,错误代码为28709,状态为19。

和记忆计数器。我在升级到2016之后才会遇到此问题。请分享您的想法,我将如何解决此问题。

编辑:

在索引优化期间发现了问题。我使用Ola脚本,来源:https://ola.hallengren.com来优化索引。该服务器只有SSIS DB。非常感谢任何帮助。

EXEC [Indexoptimize]   
  @Databases = 'ALL_DATABASES',   
  @FragmentationLow = NULL,   
  @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_OFFLINE',   
  @FragmentationHigh = 'INDEX_REBUILD_OFFLINE',   
  @FragmentationLevel1 = 5,   
  @FragmentationLevel2 = 30,   
  @PageCountLevel = 1000,   
  @SortInTempdb = 'Y',   
  @FillFactor = NULL,   
  @PadIndex = NULL,   
  @LOBCompaction = 'Y',   
  @UpdateStatistics = 'ALL',   
  @OnlyModifiedStatistics = 'N',   
  @StatisticsSample = 100,   
  @StatisticsResample = 'N',   
  @PartitionLevel = 'N',   
  @MSShippedObjects = 'N',   
  @Indexes = NULL,   
  @TimeLimit = NULL,   
  @Delay = NULL,   
  @LockTimeout = NULL,   
  @LogToTable = 'Y',   
  @Execute = 'Y'   
sql-server multithreading memory indexing database-administration
1个回答
0
投票

我最近遇到了同样的问题。我检查了连接数,但是没有很多连接到该服务器。我也查找了内存泄漏,但数据库服务器未连接到任何应用程序服务器。

最后,我发现问题是由于RAM较低。同一数据库服务器处于迁移阶段。旧的有256 GB,但新的有96 GB。该问题仅在我为其中一个大型数据库运行DBCCCHECKDB时启动。向数据库服务器添加更多RAM可解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.