在基于 Windows Server 2012 R2 的域控制器,Windows 8.1 或安装了活动目录轻量级目录服务 (AD LDS) 服务器角色的基于 Windows Server 2012 R2 的计算机上,本文介绍了内存泄漏问题的发生。修补程序可解决此问题。此修复程序具有系统必备组件。
症状
在目录服务的 Windows Server 2012 R2 版本引入了新的领域的堆内存分配。它将导致内存泄漏的 Lsass.exe (域控制器角色) 和 DsaMain.exe 的轻量目录服务 (LDS) 过程,可能会消耗您的 Windows Server 2012 R2 域控制器或 LDS 服务器上所有可用的内存。
原因
在以下情况下会出现此问题:
-
域控制器升级或添加到配置的 LDS 复制副本集
向配置中添加副本的域控制器升级或添加 Windows Server 2012 R2 或 Windows 8.1 LDS 实例之后, 复制引擎必须复制需要将新实例的命名上下文中的所有对象。任务,期间本地安全授权服务器服务 (LSASS) 过程或 DsaMain.exe 可能会导致严重泄漏时它分配了虚拟提交的字节,虽然实际使用率很低。此外,DCpromo.log 将显示以下错误消息:
日期时间[信息] 复制数据DC = Contoso,DC = com: 收到的XXXXXX利用大约XXXXXX对象并从大约XXXXXX XXXXXX 区分名称 (DN) 的值。.
日期时间 [警告] 非关键复制返回 14
错误代码 14 会转换为: ERROR_OUTOFMEMORY-没有足够存储空间来完成此操作。
在事件日志中记录以下事件或不久后 dcpromo 完成:事件日志
事件源
标识
说明
目录服务
复制
2094
性能警告: 将更改应用到以下对象时延迟了复制。如果此消息频繁出现,则表明缓慢进行复制和服务器可能有困难,跟上的更改。
对象 DN: CN =客户机名称,OU =OU中,DC =Contoso,DC =com
GUID的对象的 GUID:
分区 DN: DC =Contoso,DC =com
服务器: _msdcs DNS 记录的复制伙伴
经过的时间 (秒): XX
用户操作
看到这种延迟的一个常见原因是此对象非常大,它的值的大小或值的数目。首先,您应该考虑是否可以更改应用程序的数据存储在该对象或值的数目减少。如果这是一个大组或通讯组列表,则可以考虑提升目录林功能级别为 Windows Server 2003 或更高,因为这样可以使复制更高效地工作。您应评估是否服务器平台提供了足够的内存和处理能力的性能。最后,您可能会考虑通过移动数据库和日志的单个磁盘分区调节 Active Directory 域服务数据库。
如果您想要更改警告限制时,该注册表项所示。如果值为零将禁用检查。
附加数据
警告限制 (秒): XX
限制的注册表项: System\CurrentControlSet\Services\NTDS\Parameters\Replicator 最大等待更新对象 (秒)目录服务
KCC
1308
知识一致性检查器 (KCC) 检测到连续尝试用下列的目录服务复制已以一致的方式失败。
尝试次数:
2
目录服务:
CN = NTDS 设置,CN =DC001,CN =服务器,CN =site1,CN =站点,CN =配置,DC =Contoso,DC =com
一段时间 (分钟):
XXXXXXX
该目录服务连接对象将被忽略,并将以确保复制将继续建立新的临时连接。一旦使用此目录服务复制恢复,临时连接将被删除。
附加数据
错误值:
14 不存储空间不够,无法完成此操作。
注意:如果出现问题,不能使用域控制器安装介质 (IFM) 提升。不过,IFM 升级就源于相同的操作系统版本。 -
在事件日志中记录以下事件或不久后 dcpromo 完成:
事件日志
事件源
标识
说明
目录服务
复制
2094
性能警告: 将更改应用到以下对象时延迟了复制。如果此消息频繁出现,则表明缓慢进行复制和服务器可能有困难,跟上的更改。
对象 DN: CN =客户机名称,OU =OU中,DC =Contoso,DC =com
GUID的对象的 GUID:
分区 DN: DC =Contoso,DC =com
服务器: _msdcs DNS 记录的复制伙伴
经过的时间 (秒): XX
用户操作
看到这种延迟的一个常见原因是此对象非常大,它的值的大小或值的数目。首先,您应该考虑是否可以更改应用程序的数据存储在该对象或值的数目减少。如果这是一个大组或通讯组列表,则可以考虑提升目录林功能级别为 Windows Server 2003 或更高,因为这样可以使复制更高效地工作。您应评估是否服务器平台提供了足够的内存和处理能力的性能。最后,您可能会考虑通过移动数据库和日志的单个磁盘分区调节 Active Directory 域服务数据库。
如果您想要更改警告限制时,该注册表项所示。如果值为零将禁用检查。
附加数据
警告限制 (秒): XX
限制的注册表项: System\CurrentControlSet\Services\NTDS\Parameters\Replicator 最大等待更新对象 (秒)目录服务
KCC
1308
知识一致性检查器 (KCC) 检测到连续尝试用下列的目录服务复制已以一致的方式失败。
尝试次数:
2
目录服务:
CN = NTDS 设置,CN =DC001,CN =服务器,CN =site1,CN =站点,CN =配置,DC =Contoso,DC =com
一段时间 (分钟):
XXXXXXX
该目录服务连接对象将被忽略,并将以确保复制将继续建立新的临时连接。一旦使用此目录服务复制恢复,临时连接将被删除。
附加数据
错误值:
14 不存储空间不够,无法完成此操作。
注意:如果出现问题,不能使用域控制器安装介质 (IFM) 提升。不过,IFM 升级就源于相同的操作系统版本。 -
错误代码 14 会转换为: ERROR_OUTOFMEMORY-没有足够存储空间来完成此操作。在事件日志中记录以下事件或不久后 dcpromo 完成:
事件日志
事件源
标识
说明
目录服务
复制
2094
性能警告: 将更改应用到以下对象时延迟了复制。如果此消息频繁出现,则表明缓慢进行复制和服务器可能有困难,跟上的更改。
对象 DN: CN =客户机名称,OU =OU中,DC =Contoso,DC =com
GUID的对象的 GUID:
分区 DN: DC =Contoso,DC =com
服务器: _msdcs DNS 记录的复制伙伴
经过的时间 (秒): XX
用户操作
看到这种延迟的一个常见原因是此对象非常大,它的值的大小或值的数目。首先,您应该考虑是否可以更改应用程序的数据存储在该对象或值的数目减少。如果这是一个大组或通讯组列表,则可以考虑提升目录林功能级别为 Windows Server 2003 或更高,因为这样可以使复制更高效地工作。您应评估是否服务器平台提供了足够的内存和处理能力的性能。最后,您可能会考虑通过移动数据库和日志的单个磁盘分区调节 Active Directory 域服务数据库。
如果您想要更改警告限制时,该注册表项所示。如果值为零将禁用检查。
附加数据
警告限制 (秒): XX
限制的注册表项: System\CurrentControlSet\Services\NTDS\Parameters\Replicator 最大等待更新对象 (秒)目录服务
KCC
1308
知识一致性检查器 (KCC) 检测到连续尝试用下列的目录服务复制已以一致的方式失败。
尝试次数:
2
目录服务:
CN = NTDS 设置,CN =DC001,CN =服务器,CN =site1,CN =站点,CN =配置,DC =Contoso,DC =com
一段时间 (分钟):
XXXXXXX
该目录服务连接对象将被忽略,并将以确保复制将继续建立新的临时连接。一旦使用此目录服务复制恢复,临时连接将被删除。
附加数据
错误值:
14 不存储空间不够,无法完成此操作。
注意:如果出现问题,不能使用域控制器安装介质 (IFM) 提升。不过,IFM 升级就源于相同的操作系统版本。 -
安全描述符 (SD) 传播
内存泄漏问题可能会发生许多子对象继承在容器对象 (根域或组织单位 (OU)) 的安全更改或从属 Ou 不过 SD 传播。访问控制项 (ACE) 被更改的大小和对象 (例如,500000) 的数目,根据传播可能需要很长时间。在此期间,LSASS 进程或 DsaMain 进程可能会不断地分配提交的字节数。 -
长时间运行的查询
意外长时间运行 Windows Server 2012 R2 或基于 Windows 8.1 的 LDAP 服务器上的轻型目录访问协议 (LDAP) 查询时的高虚拟内存消耗可能会导致内存故障。长时间运行的查询获得的接触到的每个对象的安全描述符堆占用内存。
在这些情况下,当提交的字节到达可用的字节数系统变得不可用,可能甚至崩溃。
解决方案
若要解决此问题,请应用以下一节中提到的修补程序。
若要在域控制器提升 (DCPROMO) 的上下文中使用此修复程序,请执行以下步骤:
-
安装 Active Directory 域服务或 AD LDS 角色。
-
安装此更新或更高版本的 Windows Server 2012 R2 更新和安全更新包含二进制相同的 Ntdsai.dll,因为它们始终是累积。
-
将提升为域控制器的状态的计算机。
重要:如果您安装此修复程序后安装了语言包,则必须重新安装此修复程序。因此,我们建议您安装所有语言包之前,您需要都安装此修补程序。有关详细信息,请参阅将语言包添加到 Windows。
修补程序信息
可以从 Microsoft 获得受支持的修复程序。但是,此修补程序用于解决本文中描述的问题。仅对出现这一特定问题的系统应用此修补程序。
如果此修复程序可供下载,则此知识库文章顶部的"修补程序下载可用"部分。这一节没有出现,如果提交到 Microsoft 客户服务和支持的请求,以获取此修复程序。
注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。通常的支持费用将应用于其他支持问题和事项,不符合此特定的修补程序。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请转到下面的 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support注意:"修补程序下载可用"窗体显示获取此修复程序的语言。如果您没有看到您的语言,这是因为一个修补程序没有那种语言。
系统必备组件
若要应用此修补程序,您必须具有2014 年 4 月为 Windows RT 8.1、 Windows 8.1 和 Windows Server 2012 R2 (2919355) 的累积更新安装在 Windows 8.1 或 Windows Server 2012 R2。
注册表信息
若要应用此修补程序,您不必对注册表进行任何更改。
重启要求
您可能需要在应用此修补程序后,重新启动计算机。
修补程序替换信息
此修补程序不替代以前发布的修补程序。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。
详细信息
如果启用 NTDS\Diagnostics"9 内部处理"第 2 级如在 Microsoft 知识库文章314980中所述,您可能会看到下面的 ActiveDirectory_DomainService 事件。这些事件显示长时间运行的 SD 传播任务。
事件 1257年-指示 SD 传播的起始
内部事件: 安全描述符传播程序任务正在处理开始于下列容器的传播事件。
容器: OU = OU,DC = Contoso,DC = com
事件 2007年-指示进度的 SD 传播,每隔 5 分钟记录一次
内部事件: 安全描述符传播程序任务已经达到以下容器和将继续传播。
容器: OU = OU,DC = Contoso,DC = com
到目前为止处理的对象的数量: XXXXXX
事件 1258年-指示的 SD 传播,最终一些小时之后
内部事件: 安全描述符传播程序任务已完成的处理开始于下列容器的传播事件。
容器: OU = OU,DC = Contoso,DC = com
处理的对象数目: ZZZZZZ
之后 Active Directory 复制到任何其他基于 Windows Server 2012 R2 的域控制器或域中的 LDS 实例,同样的问题可能会出现由于 SD 传播在本地执行。
您不会看到活动的目录收集器设置报表中的内存泄漏因为它显示了仅使用字节。但是,可以计数器使用创建的性能监视器数据 BLG 文件检查计数器对象: 过程、 实例: Lsass、 计数器: 专用字节数和对象: 内存: 提交的字节数。
对于更长的时间观测到的泄漏开发,您可以使用性能监视器图形元素属性示例的"图"每隔 60 秒。持续时间: 15000 秒 (> 4 小时)。
不断增加的分配可以被观察到在任务管理器选项卡性能、内存、 已提交的项目。这将显示在已提交/可用千兆字节 (GB)。
错误条件的指标如下:
repadmin /showrepl 返回:
没有足够的存储空间来完成此操作。
目录服务日志错误事件 1699年:
该目录服务无法检索下列目录分区请求的更改。因此,无法将更改请求发送到以下网络地址的目录服务。
扩展请求代码: 0
附加数据
错误值: 8446 分配内存复制操作失败。
应用程序弹出窗口:
Windows 的虚拟内存不足: 您的系统虚拟内存不足。要确保 Windows 正常运行,请增加虚拟内存分页文件的大小。有关详细信息,请参阅帮助。
参考资料
了解 Microsoft 用于描述软件更新的术语。
文件信息
此软件更新的英语 (美国) 版本将安装具有下表所列属性的文件。日期和为这些文件的时间以协调世界时 (UTC) 列出。请注意在您的本地计算机上这些文件的日期和时间将显示在您的本地时间,加上当前夏时制偏差。您执行某些操作,日期和时间也可能更改。
重要:Windows 8.1 的修补程序和 Windows Server 2012 R2 的修复程序在同一个包中 。但是,热修复程序请求页上的修补程序在这两个操作系统中列出。若要申请到一个或两个操作系统的系统应用此修补程序包,选择此修补程序在"Windows 8.1 / Windows Server 2012 R2"页上列出。始终参考"适用于"一节文章,以确定每个修补程序适用于实际的操作系统。
备注:
-
通过检查下表中显示的文件版本号,可以识别应用于特定产品、 里程碑 (RTM、 SPn) 和服务分支 (LDR、 GDR) 的文件:
版本
产品
里程碑
服务分支
6.3.960 0.18 xxx
Windows 8.1 和 Windows Server 2012 R2
RTM
GDR
-
GDR 服务分支仅包含那些广泛发布以解决广泛分布的关键问题的修复。LDR 服务分支包含除了广泛发布的修补程序的修补程序。
-
为每个环境安装的MANIFEST文件 (.manifest) 和MUM文件 (.mum) 在"其他文件信息"部分中被列出。MUM、 MANIFEST和相关的安全目录 (.cat) 文件,对要维护更新组件的状态非常重要。对其属性没有列出的安全目录文件已签署 Microsoft 数字签名。
x86 Windows 8.1
文件名称 |
文件版本 |
文件大小 |
日期 |
时间 |
平台 |
---|---|---|---|---|---|
Ntdsa.mof |
不适用 |
227,765 |
18-Jun-2013 |
12:21 |
不适用 |
Ntdsai.dll |
6.3.9600.18116 |
2,583,552 |
03-Nov-2015 |
02:41 |
x86 |
x64 Windows 8.1 和 Windows Server 2012 R2
文件名称 |
文件版本 |
文件大小 |
日期 |
时间 |
平台 |
---|---|---|---|---|---|
Ntdsa.mof |
不适用 |
227,765 |
18-Jun-2013 |
14:45 |
不适用 |
Ntdsai.dll |
6.3.9600.18116 |
3,676,160 |
03-Nov-2015 |
02:54 |
x64 |
x86 Windows 8.1
文件属性 |
值 |
---|---|
文件名称 |
Update.mum |
文件版本 |
不适用 |
文件大小 |
1600 |
日期(UTC) |
04-Nov-2015 |
时间 (UTC) |
05:53 |
平台 |
不适用 |
文件名称 |
X86_532408894ea01e6280e568d78cbfbc21_31bf3856ad364e35_6.3.9600.18116_none_70de56a241809c7b.manifest |
文件版本 |
不适用 |
文件大小 |
712 |
日期(UTC) |
04-Nov-2015 |
时间 (UTC) |
05:53 |
平台 |
不适用 |
文件名称 |
X86_microsoft-windows-d..toryservices-ntdsai_31bf3856ad364e35_6.3.9600.18116_none_85b3851fd48201e8.manifest |
文件版本 |
不适用 |
文件大小 |
3,352 |
日期(UTC) |
03-Nov-2015 |
时间 (UTC) |
05:09 |
平台 |
不适用 |
x64 Windows 8.1 和 Windows Server 2012 R2
文件属性 |
值 |
---|---|
文件名称 |
Amd64_1c835b965fc6e60c22f413386606599e_31bf3856ad364e35_6.3.9600.18116_none_b800a1506ce79afa.manifest |
文件版本 |
不适用 |
文件大小 |
716 |
日期(UTC) |
04-Nov-2015 |
时间 (UTC) |
05:53 |
平台 |
不适用 |
文件名称 |
Amd64_microsoft-windows-d..toryservices-ntdsai_31bf3856ad364e35_6.3.9600.18116_none_e1d220a38cdf731e.manifest |
文件版本 |
不适用 |
文件大小 |
3,356 |
日期(UTC) |
03-Nov-2015 |
时间 (UTC) |
06:04 |
平台 |
不适用 |
文件名称 |
Update.mum |
文件版本 |
不适用 |
文件大小 |
2,061 |
日期(UTC) |
04-Nov-2015 |
时间 (UTC) |
05:53 |
平台 |
不适用 |