流媒体服务器性能测试

本文涉及的产品
视频点播 VOD,流量+存储+转码
性能测试 PTS,5000VUM额度
简介: Hello!大家好,我是资深测试工程师Jackie,今天我来和大家一起对云视睿博的高性能流媒体服务器NTV Media Server G3做一次性能测试。 该测试流程,可以作为参照测试流程用于测试流媒体服务器性能。

Hello!大家好,我是资深测试工程师Jackie,今天我来和大家一起对云视睿博的高性能流媒体服务器NTV Media Server G3做一次性能测试。

该测试流程,可以作为参照测试流程用于测试流媒体服务器性能。

今天测试有一个目标,就是验证在一台普通的PC机上,NTV Media Server G3的并发能力是否能达到3000并发。


一、测试环境和工具

今天用到的测试环境和工具包括:

  1. PC机1台,一台安装CentOS操作系统和流媒体服务器软件,作为流媒体服务器使用

  2. 视频资源若干

  3. 视频播出压力测试工具一套


先准备服务器,我这里没有太好的设备,只有一台5年前购买的i5系列的PC机,CPU是第三代i5,内存4GB,存储1T。这个服务器是够普通的,配置是够低的,反正只是测试,又不做正式运营,就用它吧。

按照说明书安装64位操作系统CentOS6.5,接着安装NTV Media ServerG3软件,没有碰到任何障碍,一切很顺利。

用命令行,看下系统该配置情况:

1
2
3
4
5
[root@ntv007 proc] # free -m
              total       used        free      shared    buffers     cached
Mem:          3791        868       2923          0        124         93
-/+ buffers /cache :        650       3141
Swap:         3935          0       3935
1
2
3
4
5
6
7
8
9
[root@ntv007 proc] # cat cpuinfo
processor: 0
vendor_id: GenuineIntel
cpu family: 6
model: 58
model name: Intel(R) Core(TM) i5-3350P CPU @ 3.10GHz
stepping: 9
cpu MHz: 3093.127
cache size: 6144 KB
1
2
3
4
5
[root@ntv007 proc] # df -h
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/vg_ntv007-lv_root    50G   35G   12G  75% /
tmpfs                          1.9G     0  1.9G   0%  /dev/shm
/dev/sda1                       485M   32M  428M   7%  /boot

启动流媒体服务器软件:

1
2
3
[root@ntv007 proc] # service ntv_server start
Starting  NTV Media Server G3.6 ...                             [确定]
Starting Novel-TV Transcoding Engine 2.0 ...  OK!          [确定]

OK,一切如说明书描述那样,系统正常启动。


二、准备视频资源

为了有代表性,我准备一个50分钟的纪录片,一部2小时的电影和一个7分钟的培训短片。

参照《NTV Media Server G3用户手册》,登录流媒体服务器后台,上传视频文件,按照1Mbps的码率对上传的文件进行转码,生成三个视频资源。


b272ef3e3c9b898bfa8f2d1c78d6eaf71ee18b77

三、执行压力测试脚本

测试工具采用中科院某所开发的视频播出压力测试工具http_loader,这款工具可以模拟终端用户播放行为,对视频服务器进行大并发压力测试。

先通过NTV Media Server G3后台的系统信息查看界面看看系统加压之前的负载:

9a6efd10efd3f713d7fd480877a6c3ecb56947cd

通过界面看到,CPU没有多少负载,内存使用是1GB。


3.1 500并发测试

执行压力测试脚本,首先对培训短片做500并发的模拟播放压力测试。

1
[root@ntv009 loader] # ./http_loader http://192.168.1.230/sps/vod/eng293.flv 500 null

通过NTV Media Server G3后台看下系统负载:

ec89212adab49a47db4747ee118ce196d080d32fec89212adab49a47db4747ee118ce196d080d32f

CPU瞬间波动到50%,然后回落并稳定在10%左右。内存消耗增加大约200M。


3.2 1000并发测试

继续加压,对电影视频做500个并发的模拟播放压力测试,加上上一脚本的负载,总并发数增加到1000

1
. /http_loader  http: //192 .168.1.230 /sps/vod/jgdy680 .flv 500 null

通过NTV Media Server G3后台看下系统负载:

6b5267ccdb58adad6b40a31204cf108786940bef

CPU瞬间波动到40%,然后回落并稳定在10%左右。内存消耗总用量约1.8GB。


3.3 3000并发测试

继续加压,对电影资源做2次1000并发的模拟播放压力测试,加上前2次负载,总并发数增加到3000

1
2
. /http_loader  http: //192 .168.1.230 /sps/vod/jgdy680 .flv 1000 null
. /http_loader  http: //192 .168.1.230 /sps/vod/jgdy680 .flv 1000 null

通过NTV Media Server G3后台看下系统负载:

2c55fd66e11015a5d1a25990f09d627b6ef21a7c

在2000并发时,CPU负载波动到50%,接着趋于稳定。内存消耗在2.8GB。

在3000并发时,CPU负载波动到50%,接着在20%以下波动。内存消耗接近4GB。

通过后台看下并发数统计:

dce35c72b1cfbd6c905383d4d2c1f9996ce264a3

没错,经过几轮加压,并发访问数量定格在3000.

当然还有一步,要看看此时视频是否还能流畅播放。通过后台的视频预览功能,播放黄石公园纪录片:

568ecc404678f957dd150087b2b26aa4bb7c146a

效果是,视频加载很快,播放非常流畅。看来确实不错!


四、测试结束

压力测试持续半个小时,手动停止测试脚本,验证系统资源的恢复情况。

1
. /http_loader  -s stop

查看系统资源用量:

0743f085fd205b97921f65daec7fc8ab180843a4

可以看到,CPU和内存消耗恢复到测试前状态。


五、结论

经过测试,可以确认这款流媒体软件能够在普通PC机上轻松实现3000并发播出。

整个测试过程中,CPU负载始终较小,可见系统优化确实很细致。内存的负载,在该测试过程中,大约每增加1000并发,内存消耗会增加1GB。

以上仅仅是博主自己的测试结论,设备条件有限,如果要模仿大规模运营效果还需要有更好的设备来做支撑。任何疑问或建议可以在博客评论中给我留言,Thanks!

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
3月前
|
网络协议 Shell Windows
搭建rtmp流媒体服务器的步骤
网络上很多问文章介绍使用ffmpeg推送和拉流,经常遗漏安装rtsp-simple-server的步骤,执行推流命令:
217 0
|
2月前
|
存储 编解码 应用服务中间件
|
1月前
|
JavaScript 前端开发 关系型数据库
Vue 开源项目:一款实用的个人音乐流媒体服务器,轻松打造属于自己的音乐天堂!!!
Vue 开源项目:一款实用的个人音乐流媒体服务器,轻松打造属于自己的音乐天堂!!!
|
2月前
|
Shell Python
`pytest-httpserver`是一个pytest插件,它允许你在测试期间启动一个轻量级的HTTP服务器,并模拟HTTP请求和响应。
`pytest-httpserver`是一个pytest插件,它允许你在测试期间启动一个轻量级的HTTP服务器,并模拟HTTP请求和响应。
|
2月前
|
存储
流媒体服务器与视频服务器有什么区别?
总的来说,流媒体服务器和视频服务器的主要区别在于,流媒体服务器更注重实时性和并发性,而视频服务器更注重存储和分发。
121 2
|
2月前
|
测试技术 Linux
linux 服务器运行jmeter 进行服务性能压测
linux 服务器运行jmeter 进行服务性能压测
94 0
|
2月前
|
Java 测试技术
用代码模拟调用接口方式压测现网服务器的服务性能
用代码模拟调用接口方式压测现网服务器的服务性能
29 0
|
3月前
|
运维 Java 测试技术
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
36 3
|
3月前
|
NoSQL Redis 数据安全/隐私保护
连接测试服务器redis
连接测试服务器redis
|
3月前
|
缓存 测试技术 Apache
ab 压测工具:评估你的服务器性能
ApacheBench (AB) 是一款用于 HTTP 性能测试的轻量级工具,可模拟多用户并发访问,评估应用在高负载下的表现。通过命令行参数 `-n` 和 `-c` 分别设置总请求数和并发数,例如 `ab -n 100 -c 2 http://larablog.test/`。
86 1