流媒体服务器做为为用户提供服务的基本功能单元,其性能的高低直接影响到流媒体系统的服务能力。在衡量流媒体服务器时,最关键的指标是流输出能力和能同时支持的并发请求数量,下面咱们以本地硬盘做为存储介质的流媒体服务器为例,首先对其工做过程进行简单的分析:
(1)从硬盘盘碟中分段读取流媒体文件内容,通过硬盘接口电路(SCSI、IDE)、PCI总线和系统内部总线存储到内存中(途中通过硬盘控制卡和PCI控制器两个转换接口)。
(2)在流媒体文件被发送到网络上以前,CPU须要对内存中的流媒体文件片断进行一些处理,例如,复制、切分、按协议打包等。
(3)打包以后的文件内容在内存中经过系统内部总线、PCI控制器、PCI总线到达网卡。
(4)网卡将文件内容再一次包装后发送到外部网络。
经过以上的分析能够看出,在硬件方面有四个影响到流媒体服务器性能的关键因素:CPU处理能力、内存、磁盘读取能力和网络吞吐率。缓存
(1)CPU处理能力
流媒体服务器的CPU主要进行内容文件的复制、切分和按协议打包等工做,并对用户发起的各类服务请求(如快进、快退、搜索等)进行响应和处理以及服务器列表信息的维护和检索等。
对CPU处理能力的要求,随着须要支持用户并发访问和服务数量的增加而提升,当并发用户数越多,点播的节目越分散,对CPU的处理要求越高。当进行直 播或用户点播单一文件时,服务器为用户提供的内容都是相同的,只须要读取一份源内容,而后进行内容的复制、分发操做;而当用户点播不一样的节目时,不只要进 行内容的分发操做,还须要从多个节目源中取内容,进行更多的磁盘读取和内容读写操做,须要启动更多的进程,每一个进程分配的时间片变小,并须要增长更多的进 程切换操做。所以一样配置的服务器,用于直播服务的能够同时为几千个用户服务,但用于点播服务时,则只能为几百个用户提供服务。
另外,在流媒体服务的不一样阶段,CPU的负荷也是不一样的。在流媒体链接创建初始阶段,除正常的文件复制、切分和协议打包工做外,会有更多的交互请求需 要处理,并且为减小用户等待缓存的时间,有些系统会在短期内提升文件传输速度,这就致使更多的文件读取和处理工做,要比平稳链接阶段更耗费资源。
(2)对原始数据的读取能力
原始流媒体文件的存放方式主要有本地硬盘、NAS或SAN存储设备几种。不论那种数据存储方式,原始数据文件的读取能力都将直接影 响到服务器的性能。对读取能力的要求,与业务类型和用户请求的数量有很大的关系。直播对于数据读取速率的要求最低,不过它须要为多少用户提供服务,只需从 数据源取一份数据,而后进行复制;可是,点播则须要为每一个用户读取不一样的数据源,对数据源的读取压力大得多。
原始数据的读取能力是流媒体服务器最大的性能瓶颈,主要是受到存储设备的速度限制。目前主要采用两种解决方法:一是采用Raid技术和磁盘阵列,提升 硬件速度,不过价格较高;另外一种方法是采用文件缓存技术,若是几个用户点播同一个节目,就能够从缓存中而不是存储设备中读取数据,减小存储设备压力。不过 这种方法效果有限,随着点播用户请求数的增加,用户点播的节目会愈来愈分散,在缓存中命中的比例就会逐步下降,当命中率下降到必定程度,起不到减轻存储设 备读取压力的做用。
(3)内存
在流媒体服务器中,内存能够按其用途分为两大部分。一部分是为处理每一个用户的流媒体请求和服务使用的内存,用户的平均内存使用率取决于流媒体内容的发 布类型和编码设置,如比特率、包大小、音频流和视频流的数目等。根据用户行为、服务的目标用户数、用户请求链接流的分散率和发布点类型,能够估算出一个流 媒体服务器须要使用多大的内存。
另外一部分是用于缓存数据文件。当服务器处理、发送和从存储设备读取数据时,都须要经过内存进行内容缓存。当内存不足时,会出现内存分页现象。内存分页 可能会形成没法预料的延迟。大物理内存能够将因内存分页而产生的延迟最小化,更多的内存能够提供更多的文件缓存,减小存储设备读取能力瓶颈形成的影响,提 高服务器性能。
(4)网络吞吐率
服务器网络接口的服务能力影响到数据的传输,当网络带宽不足时,会致使数据收发延迟,致使用户服务中断。服务器的网络吞吐率只与用户数量和点播节目的编码率有关。
对于一个流媒体服务器来讲,以上几个因素中的任何一个都会形成服务器没法正常工做。另外,各个性能因素和处理环节是相互联系、相互影响的。例如当内存 不足时,会产生大量的内存分页操做,同时也会形成CPU的使用率很快上升到100%;增大内存,提升服务器内存缓存能力,还能够下降硬盘读取操做。所以,在进行服务器配置时,要尽可能作到各方面的性能协调和匹配,各性能指标均衡,同时应考虑到不一样组件的价格不一样,好比存储设备价格较高,可相应配置较低的CPU和较大的内存,以提升设备的性价比。服务器