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



The information in this article applies to:

  • Microsoft .NET Framework 1.1

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 FIX: Programs that use the .NET Framework may experience a high memory condition

826985 FIX: Performance slows in memory-intensive programs after you apply the hotfix that KB article 817618 describes

317866 INFO: Roadmap for garbage collection in the Microsoft .NET Framework


Modification Type:MajorLast Reviewed:9/8/2005
Keywords:kbServer kbService kbDLL kbMemory kbGarbageCollect kbenable kbConfig kbprb KB840523 kbAudDeveloper