How To Work with Advanced WMS 9 Series Settings to Change Performance in Special Situations (811863)



The information in this article applies to:

  • Microsoft Windows Media Services 9 Series

SUMMARY

The Window Media 9 Series server is tuned, by default, for best performance during typical usage situations. In special situations, when using high performance hardware with more than 2 gigabytes (GB) of system memory, the server can reach a condition where it can no longer allocate more memory because of a maximum address space limitation. Each Win32 application can allocate up to 4 GB of memory, with 2 GB dedicated to user mode memory and another 2 GB dedicated for the kernel. When an application reaches the 2-GB user mode memory limitation, the server may no longer be able to allocate memory for additional client connections.

This article discusses the configuration settings that you can use to reduce the amount of memory that is allocated per user in the event such a limit is reached. As mentioned earlier, the server has been optimized for the best possible performance. By changing the values, you might see the following negative side effects (and possibly others):
  • Increased number of read operations per second- The overall performance of your server may be reduced, considering that the number of disk seeks and frequency of disk reads may increase significantly.
  • Reduced UDP resend buffer- The amount of data that is kept by the server to acknowledge UDP resend requests is reduced. Therefore, the client experience streaming by means of UDP on high latency networks may be adversely affected.
Note Do not make these changes until you determine the side effects to the overall server performance and to the end user experience. Also note that these values are, to a degree, complementary; the actual internal buffer sizes and the number of buffers used may not be the values specified earlier. The amount of memory used per client by the server depends on a combination of several internal parameters.

WORKAROUND

Warning This article contains information about editing the namespace. Before you edit the namespace, verify that you have a backup copy that you can restore if a problem occurs. If you edit the namespace incorrectly, you can cause serious problems that may require you to reinstall any product that uses the namespace. Microsoft cannot guarantee that problems that result if you incorrectly edit the namespace can be solved. Edit the namespace at your own risk.
  1. Stop the Windows Media Services (run the net stop wmserver command).
  2. Change to the directory where the namespace file is located (%SystemRoot%\system32\windows media\server).
  3. Open the ServerNamespace.xml file in a text editor, such as Notepad.
  4. Locate the Other node in the namespace.
  5. Add the PacketPump sub-node under the Other node after any existing sub-nodes:
     <node name="PacketPump" opcode="create" > 
       </node> <!-- PacketPump --> 
  6. The following values can be added to the PacketPump sub-node to modify the default values. If a value is not added, the default will be used.
    • OptimalBufferSizeInMSecsOnDemand- Defines the maximum buffer size, in milliseconds, allocated per connection for an on-demand publishing point.

      Minimal setting = 0x3E8 (1000 ms)
      Maximum setting = 0x2710 (10000 ms)
       <node name="OptimalBufferSizeInMSecsOnDemand" opcode="create" type="int32" value="0x1f40" /> 
    • MaxBufferSizeInBytes- Defines the maximum buffer size, in bytes, allocated per connection for a publishing point.

      Minimal setting = 0x200 (512 bytes)
      Maximum setting = 0x40000 (256 Kbytes)
       <node name="MaxBufferSizeInBytes" opcode="create" type="int32" value="0x10000" /> 
    • MaxResendBufferSizeInMSecs- Defines the maximum buffer size, in milliseconds, allocated per connection for UDP resend operations.

      Minimal setting = 0x0 (0 ms)
      Maximum setting = 0x2710 (10000 ms)
       <node name="MaxResendBufferSizeInMSecs" opcode="create" type="int32" value="0x2710"/> 
  7. Restart Windows Media Services (run the net start wmserver command).
Another representation of the code that you can add to the ServerNamespace.xml file is as follows:
 
<node name="Other" opcode="create" >
    <node name="Client Upgrade" opcode="create" >
    ...
    </node> <!-- Client Upgrade -->
    <node name="PacketPump" opcode="create" >
        <node name="OptimalBufferSizeInMSecsOnDemand" opcode="create" type="int32" value="0x1f40" />
        <node name="MaxBufferSizeInBytes" opcode="create" type="int32" value="0x10000" />
        <node name="MaxResendBufferSizeInMSecs" opcode="create" type="int32" value="0x2710" />
    </node> <!-- PacketPump -->
</node> <!-- Other --> 

Use the following table as a guideline for server configurations if the target audience of your server is a low bitrate user (typically, a dial-up user with connection speed of 10 Kbps to 40 Kbps).
Namespace ValueRange
OptimalBufferSizeInMSecsOnDemand0x7D0 - 0xBB8
MaxBufferSizeInBytes0x2000 - 0x4000
MaxResendBufferSizeInMSecs0x7D0 - 0xBB8

Use the following table as a guideline for server configurations if the target audience of your server is a higher bitrate user (typically, the lower end of the broadband connection speeds of 100 Kbps to 400 Kbps).
Namespace ValueRange
OptimalBufferSizeInMSecsOnDemand0xFA0 - 0x1F40
MaxBufferSizeInBytes0x8000 - 0x10000
MaxResendBufferSizeInMSecs0x1388 - 0x1B58

If your target audience uses 500 Kbps or higher, you probably do not have to make these configuration changes. In these cases, other system resources will be exhausted before the server experiences problems with the memory space limitations.

Modification Type:MinorLast Reviewed:9/2/2004
Keywords:kbDSWWMM2003Swept kbinfo KB811863 kbAudDeveloper kbAudITPRO