We are PXE booting with WDS. Sometimes WDS process will take all the memory.
Windows 2012 R2 Standard
wdstftp.dll version: 6.3.9600.19177
Here is the information captured by DebugDiag tool when there was memory leak. How to resolve the memory leak?
DebugDiag Analysis Report
Analysis Summary
Warning
Description Recommendation
WARNING - DebugDiag was not able to locate debug symbols for \wdssrv.dll, so the reported function name(s) may not be accurate.
\wdssrv.dll is responsible for 10.48 GBytes worth of outstanding allocations. The following are the top 2 memory consuming functions:
wdssrv!CollectPerfCounters+c7f2: 10.48 GBytes worth of outstanding allocations. If this is unexpected, please contact the vendor of this module, Microsoft Corporation, for further assistance with this issue.
WARNING - DebugDiag was not able to locate debug symbols for \wdstftp.dll, so the reported function name(s) may not be accurate.
\wdstftp.dll is responsible for 2.72 MBytes worth of outstanding allocations. The following are the top 2 memory consuming functions:
wdstftp!CollectPerfCounters+eb0d: 1.5 MBytes worth of outstanding allocations.
wdstftp!CollectPerfCounters+14d95: 905.25 KBytes worth of outstanding allocations. If this is unexpected, please contact the vendor of this module,
Detailed module report(Memory)
Module details for wdssrv
Module Name wdssrv
Allocation Count 11771488 allocation(s)
Allocation Size 10.48 GBytes
Module Information
Image Name: c:\Windows\System32\wdssrv.dll Symbol Type: Export
Base address: 0x0000000300905a4d Time Stamp: Sat Mar 8 15:29:50 2014 Checksum: 0x00000000
00000000 Comments:
COM DLL: False Company Name: Microsoft Corporation
ISAPIExtension: False File Description: Windows Deployment Services Server
ISAPIFilter: False File Version: 6.3.9600.17042 (winblue_gdr.140307-1710)
Managed DLL: False Internal Name: wdssrv.dll
VB DLL: False Legal Copyright: © Microsoft Corporation. All rights reserved.
Loaded Image Name: wdssrv.dll Legal Trademarks:
Mapped Image Name: Original filename: wdssrv.dll
Module name: wdssrv Private Build:
Single Threaded: False Product Name: Microsoft® Windows® Operating System
Module Size: 216 KBytes Product Version: 6.3.9600.17042
Symbol File Name: wdssrv.dll Special Build: &
Top 1 functions by allocation count
wdssrv!CollectPerfCounters+c7f2
11,771,488 allocation(s)
Top 1 functions by allocation size
wdssrv!CollectPerfCounters+c7f2
10.48 GBytes
Function details
Function wdssrv!CollectPerfCounters+c7f2
Source Line
Allocation type Heap allocation(s)
Heap handle 0x00000000`00000000
Allocation Count 11771488 allocation(s)
Allocation Size 10.48 GBytes
Leak Probability 95%
Call stack sample 1
Address 0x00000000`00000000
Allocation Time 00:00:05 since tracking started
Allocation Size 1.27 KBytes
Function
Source
Destination
LeakTrack+1f109
wdssrv!CollectPerfCounters+c7f2
wdssrv!CollectPerfCounters+57e7
wdssrv!CollectPerfCounters+49d4
wdssrv!CollectPerfCounters+4513
wdssrv!WdsSendPacketList+87
wdstftp!WdsProviderInitialize+1476
wdstftp!WdsProviderInitialize+1787
wdstftp!WdsProviderInitialize+187a
wdstftp!WdsProviderInitialize+1f6b
wdstftp+1265d
wdssrv!ServiceMain+1548
wdssrv!CollectPerfCounters+617
wdssrv!CollectPerfCounters+45e8
wdssrv!CollectPerfCounters+5785
wdssrv!CollectPerfCounters+5daa
wdssrv!CollectPerfCounters+97f7
kernel32!BaseThreadInitThunk+22
ntdll!RtlUserThreadStart+34
Call stack sample 2
Address 0x00007ffd`cb946d60
Allocation Time 00:00:05 since tracking started
Allocation Size 72 Bytes
Function
Source
Destination
LeakTrack+1f109
wdssrv!CollectPerfCounters+c7f2
wdstftp!CollectPerfCounters+2103
wdstftp!CollectPerfCounters+34dd2
wdstftp+153b2
wdstftp!CollectPerfCounters+33e8
wdstftp!WdsProviderInitialize+139f
wdstftp!WdsProviderInitialize+1787
wdstftp!WdsProviderInitialize+187a
wdstftp!WdsProviderInitialize+1f6b
wdstftp+1265d
wdssrv!ServiceMain+1548
wdssrv!CollectPerfCounters+617
wdssrv!CollectPerfCounters+45e8
wdssrv!CollectPerfCounters+5785
wdssrv!CollectPerfCounters+5daa
wdssrv!CollectPerfCounters+97f7
kernel32!BaseThreadInitThunk+22
ntdll!RtlUserThreadStart+34
Call stack sample 3
Address 0x00007ffd`cb946d60
Allocation Time 00:00:05 since tracking started
Allocation Size 72 Bytes
Function
Source
Destination
LeakTrack+1f109
wdssrv!CollectPerfCounters+c7f2
wdstftp!CollectPerfCounters+2103
wdstftp!CollectPerfCounters+34dd2
wdstftp+153b2
wdstftp!CollectPerfCounters+33e8
wdstftp!WdsProviderInitialize+139f
wdstftp!WdsProviderInitialize+1787
wdstftp!WdsProviderInitialize+187a
wdstftp!WdsProviderInitialize+1f6b
wdstftp+1265d
wdssrv!ServiceMain+1548
wdssrv!CollectPerfCounters+617
wdssrv!CollectPerfCounters+45e8
wdssrv!CollectPerfCounters+5785
wdssrv!CollectPerfCounters+5daa
wdssrv!CollectPerfCounters+97f7
kernel32!BaseThreadInitThunk+22
ntdll!RtlUserThreadStart+34
Call stack sample 4
Address 0x00000000`00000000
Allocation Time 00:00:05 since tracking started
Allocation Size 1.27 KBytes
Function
Source
Destination
LeakTrack+1f109
wdssrv!CollectPerfCounters+c7f2
wdssrv!CollectPerfCounters+57e7
wdssrv!CollectPerfCounters+487e
wdssrv!CollectPerfCounters+4491
wdssrv!WdsSendPacket+ce
wdstftp!WdsProviderInitialize+203b
wdstftp!WdsProviderInitialize+1107
wdstftp!WdsProviderInitialize+186d
wdstftp!WdsProviderInitialize+259f
wdstftp!WdsProviderInitialize+28e3
ntdll!LdrFindEntryForAddress+ce
ntdll!LdrInitializeThunk+29e
ntdll!RtlFreeUnicodeString+17ed
kernel32!BaseThreadInitThunk+22
ntdll!RtlUserThreadStart+34