Guest SimonW Posted May 23, 2008 Posted May 23, 2008 We have a service that has been running under Windows 2000 Server SP4 for several years. We have recently upgraded some servers in the farm to Windows Server 2003 R2 SP2. Over time (in some cases as low as six hours depeding on throughput) the service performance degrades and eventually results in an "out of memory" condition. The service is structured as follows: 1. MultiService.exe - C++ 6.0 EXE which is a "service host". 2. NFSTaskDataTransfer.dll - Visual Basic 6.0 DLL which is the service logic. 3. NFSTransfer.dll - Visual Basic 6.0 DLL (installed in a COM+ library application) which is the data access tier. I have uploaded the following file: http://www.turambar.co.uk/pfms/memoryanalysis.zip which contains the following files: PTINDUNA\Farm Memory and Handles_000012.blg PTINDUNA\Memory_Report__PID_4496__05162008084113962.mht PTINDUNA\MultiService.EXE__PID__4496__Date__05_16_2008__Time_08_39_06AM__604__Manual Dump.dmp PTINDUNA\MultiService.EXE__PID__4496__Date__05_16_2008__Time_08_39_06AM__604__ProcessList.txt PTINDUNA\PerfmonVirtualBytes.JPG PTINVALID\Memory_Report__PID_2408__05162008083958120.mht PTINVALID\MultiService.EX__PID__2408__Date__05_16_2008__Time_08_39_30AM__73__Manual Dump.dmp PTINVALID\MultiService.EX__PID__2408__Date__05_16_2008__Time_08_39_30AM__73__ProcessList.txt These were created using perfmon Debug Diag 1.1. These correspond to a test run using two farm boxes PTINDUNA (Windows Server 2003 R2 SP2) and PTINVALID (Windows 2000 Server SP4). The Debug Diag analysis report (Memory_Report__PID_4496__05162008084113962.mht) shows massive heap fragmentation. As can be seen from PerfmonVirtualBytes.JPG the virtual memory on PTINDUNA rises periodically until it reaches the 2GB limit, at which point the service fails (the other line on the graph is a second service using the same technologies but different load patterns which does not suffer from memory fragmentation). This does not happen on PTINVALID. Our workaround for this problem is to periodically stop and start the service but this is not really a long-term practical solution. We would like some advice on what has changed with Server 2003 that could cause this behaviour. Is this an already identified fault for which there is a hotfix? [i have an open support case for this but the offshore guys don't seem to see the heap fragmentation issue that I see - am I going mad?] Regards Simon
Recommended Posts