
文章插图
假设令牌桶的容量为 D(单位:字节),产生令牌的速率为 v(单位:字节/秒),输出数据的最大速率为 V(单位:字节/秒),突发的时间为 s(单位:秒) 。当突发数据来临前假设桶中的容量为 D-C,则有:

文章插图
经过变型,则有:

文章插图
由此可以计算出所能承受的突发时间,从而可以根据系统突发时间上限在代码中进行设置 。
令牌桶实现 Shaper 模块的主要接口如下:
(1) bool Udp Shaper Channel()
此函数实现的功能是以 UDP 方式发送媒体数据,首先根据时间戳下发 ret 数据,之后发送媒体数据,如果成功则返回 True,失败则返回 False 。
(2) void Interleaved Shaper Channel()
此函数首先发送信令(发送信令的时戳为当前时间),再根据时戳决定当前是否要发送媒体数据 。若到达发送媒体数据的时间则进行发送;若没有到达,则等待 。由于 TCP 有拥塞控制,当发送失败时,数据包的时戳时间会改为当前时间加上延迟时间 。
(3) void Download Shaper Channel()
此函数功能为下载媒体数据,负责发送码率的升速与降速 。在函数中设置发送码率的上线发送码率,同级周期内(1s)若发送失败率为 0,则提速 5%;若发送失败率小于 10%,则降速 5% 。设置升速时,升速不能超过发送码率的上线,降速不能低于 12Kbps 。
3.4 数据重传
Shaper 模块在发送数据包的过程中极有可能发生包丢失等异常情况,本系统在 Shaper 模块中增加重传逻辑用以应对此类情况 。设计逻辑图如下图所示:

文章插图
Shaper 模块在进行数据传输时,会根据 send()函数返回值对数据是否有丢包进行判断 。例如,在传输 10 个数据包的情况下,当 send()返回值为 7 * 1316 字节(1316字节为 TS 格式下的媒体元数据单位),即说明有 3 个数据包在传输时发生丢失,此时根据时戳将待传输的数据包加入重传队列,在下次传输数据时优先传输重传队列中的数据包,之后再对 Cache 模块中的新数据队列进行传输 。具体重传时间的计算公式如下:

文章插图
4 流媒体服务器参数优化
Nginx 服务器的配置系统很灵活 。只需通过对配置项的增加、修改即可实现第三方模块的信息提供 。将对 Nginx 服务器与内核的配置文件进行相关设置,从而实现流媒体服务器的参数优化 。
4.1 流媒体服务器配置文件优化
为了提高 Nginx 服务器的性能,需对流媒体服务器进行参数调优 。Nginx 可以通过修改默认安装路径下/usr/local/nginx/conf/nginx.conf 的 nginx.conf 文件来进行参数配置 。调优模块分为三类,全局块、Events 块和 HTTP 块 。
(1)全局块,配置文件优化如下:
worker Process_num:4; worker_cpu_affinity 0001 0010 0100 01000;(a) worker Process_num 是 Nginx 创建的 worker 进程的个数 。Nginx 中基本的网络事件都由 worker 进程处理,所以 worker 进程的数量对 Nginx 的性能会有很大的影响 。如果设置太小,则 Nginx 服务器很难应对高并发的请求数量,浪费了资源;如果设置过多会 导 致 进 程 之 间 的 频 繁 切 换 ,造成了不必要的开销。一 般来说,通常将worker Process_num 设置为服务器CPU的内核数量 。(b) worker_cpu_affinity 是为每个 work 进程设置一个固定 CPU 内核 。当 Nginx 中的每个worker 进程都处于工作状态时,可能产生多个 worker 进程争抢一个内核的现象,设置 worker_cpu_affinity 可以减少因选择不同 CPU 内核产生的开销 。
(2)Events 块,配置文件优化如下:
worker_connections:102400; use epoll; Events 块对 Nginx 中事件模块进行配置来控制和处理访问连接 。(a) worker_connections 用来设置每个 worker 进程的最大连接数,最大连接数应与全局块中的 worker File_limit Num 值一样 。
(b) use 用来设置事件驱动模型 。在不同操作系统下选取的事件驱动模型也有所不同,对于 linux 系统来说,epoll 模型是较为高效的事件管理机制,在性能方面相对于标准事件模型 select 和 poll 要高很多 。
(3)HTTP 块主要从网络连接设置、文件缓存设置、Socket 优化设置三部分组成 。
推荐阅读
- 绿茶功效与作用,绿茶粉的功效与作用,1
- 与王阳明齐名的人 王阳明最好的朋友
- 曼松茶的功效与作用,杨聘号祥凤曼松王子茶全面上市
- 白茶的功效与作用,茉莉毛尖属于什么茶茉莉花茶毛尖的功效与作用
- 龙桑茶的功效与作用,茉莉毛尖属于什么茶茉莉花茶毛尖的功效与作用
- 高考英语听力应试技巧与策略
- 绿茶粉怎么制作面膜,绿茶粉的功效与作用,1
- 碧螺春和龙井功效对比,西湖龙井的功效与禁忌
- 碧螺春茶的功效与作用,碧螺春的功效,喝碧螺春的好处
- 百合枣仁茶的功效,百合花茶的功效作用与泡法
