系统内存
有几个实用工具可用来跟踪系统内存,包括 Windows Task Manager 和 Performance Monitor \Process(WMServer)\Private Bytes 计数器。作为一般原则,系统内存应该总是超过 Windows Media Services 进程 (WMServer.exe) 所使用的内存大小。对于广播情况,在理想情况下 Windows Media 服务器的内存应该比在目标使用率水平下执行时所需要的内存至少多出 30%。对于请求情况,由于操作系统可以用额外的内存来进行文件缓冲操作,所以建议使服务器的可用内存比需要的可用内存至少多 50%。
每个用户使用的平均内存取决于发布点的类型和内容中使用的编码设置,例如比特率、包大小、音频流和视频流的数目。有关每个用户需要的平均内存的更多信息,请参阅附录 B。根据使用模式、目标用户数目、客户端在不同流之间的分布情况以及发布点类型,您应该能够估计您的流媒体系统需要多少内存。
如果您的服务器有很大的物理内存,额外的内存就可以使内存页面操作引起的延迟降到最低,并提高服务器的整体性能。考虑到流媒体的性质,Windows Media Services 有一个小时间窗来将数据发送给所有连接的用户。在内存受限的系统中,当服务器处理、发送或读取来自数据源的数据时,内存页面操作会导致不可预期的延迟。产生的发送延迟通常会影响整体客户端体验。如果服务器有大量可用的系统内存,操作系统就可以最大程度地使用文件缓冲,并使数据源吞吐量瓶颈的影响降到最低程度。
服务器内存需求是由几个因素决定的。例如,来自广播发布点的流比来自请求发布点的流需要的内存要少。连接协议也会影响分配的内存总数。一般情况下,基于传输控制协议 (TCP) 的协议比基于用户数据报协议 (UDP) 的协议需要的系统内存要少,因为 Windows Media Services 要为 UDP 连接存储一些额外信息。依照比特率,为了满足当 UDP 包在传输过程中丢失时的包重新发送请求,Windows Media Services 在服务器内存中存储已发送数据达 10 秒钟。有关 Windows Media Services 支持的协议及其性能区别的更多信息,请参阅本文的“协议”部分。