Article ID: 840523 - Last Review: September 8, 2005 - Revision: 2.2

Performance is poor when you run a non-interactive .NET Windows server application on a multiprocessor computer

Expand all | Collapse all

SYMPTOMS

Performance is poor when you run a non-interactive Microsoft .NET Windows server application, such as a Windows service or a remoting service, on a multiprocessor computer. If available memory is low, you may receive a System.OutOfMemoryException exception. Additionally, the computer may stop responding, or you may receive the following error message:
Server Application Unavailable

CAUSE

By default, non-interactive .NET Windows server applications on multiprocessor computers run the garbage collector in Workstation mode. Additionally, when the garbage collector runs in Workstation mode, the concurrent mode of the garbage collector is set to true. The concurrent mode of garbage collector is optimized for interactive Windows applications. For the interactive applications, the concurrent mode decreases the pause-time at the expense of the working set and the throughput. Also, Workstation mode of the garbage collector is optimized for interactive applications.

RESOLUTION

To resolve this problem, run the garbage collector in Server mode. In Server mode, the garbage collector is optimized for services and for non-interactive applications. To run the garbage collector in Server mode, add the following code after the <runtime> element in the configuration file of the .NET Windows server applications:
<gcServer enabled="true"/>

STATUS

This behavior is by design.

REFERENCES

For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base:
833610  (http://support.microsoft.com/kb/833610/ ) FIX: Programs that use the .NET Framework may experience a high memory condition
826985  (http://support.microsoft.com/kb/826985/ ) FIX: Performance slows in memory-intensive programs after you apply the hotfix that KB article 817618 describes
317866  (http://support.microsoft.com/kb/317866/ ) INFO: Roadmap for garbage collection in the Microsoft .NET Framework

APPLIES TO
  • Microsoft .NET Framework 1.1
Keywords: 
kbserver kbservice kbdll kbmemory kbgarbagecollect kbenable kbconfig kbprb KB840523
 

Article Translations

 

Related Support Centers