Docker容器+Phoronix-Test-Suite测试X86和ARM的ffmpeg转码性能

tsjsdbd 发表于 2020/03/18 18:06:22 2020/03/18
【摘要】 如何使用phoronix-test-suite跑ffmpeg转码性能测试,主要测试X86和ARM的。中间使用Docker容器方便操作过程。

Phoronix Test Suite是一款性能测试软件,自带了各种CPU,内存,网络,系统等维度的测试用例。可以在Linux, Solaris, OS X, BSD操作系统上进行benchmark测试。

不过虽然该软件集成了各式各样的测试软件,但是每个测试项都要联网下载。

我们后面简称PTS

 

1      X86phoronix-test-suite

1.1      使用Docker启动Phoronix Test Suite

根据 PTS官网提示,直接下载docker镜像:https://www.phoronix-test-suite.com/?k=downloads

docker pull phoronix/pts

 

1.2      执行测试用例

启动pts容器:

docker run -it phoronix/pts

然后,会进入交互模式,可以敲

help

查询可以执行的命令。

由于我们要跑 ffmpeg 用例,所以需要先下载。

install pts/ffmpeg

这个时候如果联网正常,就可以下载好(实际上我这里是内网,连openbenchmarking.org总数出错,我单独补一章节记录怎么解决)。然后直接执行用例就行:

run pts/ffmpeg

这个时候就会出结果:

image.png

 

2      代理联网失败

install的时候,各种失败。这里记录解决过程。

 

2.1      使用bash模式进入容器

先进入容器,然后手动启动pts shell

docker run -it phoronix/pts /bin/bash

进入容器后,手动启动 pts shell

/phoronix-test-suite/phoronix-test-suite shell

 

2.2      设置代理

pts shell交互模式下,敲:

network-setup

进入代理设置菜单。设置好了代理信息。

然后重新开始install。还是报 checksum 失败。

 

2.3      关闭Checksum校验

退出shell模式,设置关闭checksum校验。

export NO_FILE_HASH_CHECKS=1

然后重新启动 pts shell

/phoronix-test-suite/phoronix-test-suite shell

这个时候,再install的时候,就跳过checksum检查了。

这个时候,下载 ffmpeg 包还是失败。。。(不知道代理为什么不生效)

 

2.4      手动下载依赖包

再开一个Xshellconsole窗口,进入刚才那个pts容器:

docker exec -it phoronix/pts /bin/bash

进入到 测试用例对应的目录:

cd /var/lib/phoronix-test-suite/installed-tests/pts/ffmpeg-2.8.0

 

设置代理:

export http_proxy=t00402375:xpasswordx@172.18.xx.xxx:8080

手动下载2个包:(参见https://openbenchmarking.org/innhold/db4065425d63a915c8d19fd8023b4c29125791de

 

1ffmpeg软件

curl http://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2 -o ffmpeg-4.0.2.tar.bz2

2)视频文件

curl http://samples.ffmpeg.org/V-codecs/h264/HD2-h264.ts -o HD2-h264.ts

下载好后。

再去pts shell里面,跑run pts/ffmpeg 终于可以了。

 

3      打包镜像,下次不用再联网下载了

对刚才成功跑通的Docker容器,重新打镜像:

docker commit -m "tsj" -a "tsj" aab0871167d7 phoronix/pts:ffmpeg

 

这样下次就不联网了,ffmpeg测试用例已经在镜像里面了。

docker run -it phoronix/pts:ffmpeg

然后进入shell

/phoronix-test-suite/phoronix-test-suite shell

直接跑:

run pts/ffmpeg

搞定。

 

3.1      自动化跑用例

如果不想使用shell交互模式,直接跑:

docker run --rm phoronix/pts:ffmpeg bash -c "echo -e 'n\n' | /phoronix-test-suite/phoronix-test-suite run pts/ffmpeg"

 

4      ARM版本的 Docker镜像

pts仓库的issue里面有个跟踪:

https://github.com/phoronix-test-suite/phoronix-test-suite/issues/155

负责人说由于基础镜像的关系,ARM版本的Docker镜像就不提供了。

 

所以ARM版本的Docker镜像,需要自己打包。。

目前看,ARM上,直接下载软件包的方式(非Docker方式)跑更直接一点。

 

 

5      ARM环境下跑ffmpeg

1)根据文档更新Ubuntu源:

参考华为镜像设置:https://mirrors.huaweicloud.com/

Ø  备份当前镜像源文件配置

cp -a /etc/apt/sources.list /etc/apt/sources.list.bak

Ø  下载新的镜像配置源文件

wget -O /etc/apt/sources.list https://mirrors.huaweicloud.com/repository/conf/Ubuntu-Ports-bionic.list

Ø  更新

apt-get update

 

2)下载软件包:

根据官网资料:https://www.phoronix-test-suite.com/?k=downloads

 

curl http://phoronix-test-suite.com/releases/repo/pts.debian/files/phoronix-test-suite_9.4.1_all.deb -o phoronix-test-suite_9.4.1_all.deb

 

3)安装依赖

直接安装pts会报错,说有些依赖软没有安装。比如:php-cliphp-xml等,所以我们要先安装依赖包。

apt-get install php-cli php-gd php-xml

 

4)安装pts

dpkg -i phoronix-test-suite_9.4.1_all.deb

安装后,可执行文件 phoronix-test-suite 会自动放入 /usr/bin/ 目录。

 

5)启动 pts shell

直接运行:

phoronix-test-suite shell

就可以了。(ps,国内网络下载超级慢。。。嫌慢的可以去香港regionARM的机器跑。)

然后正常的安装测试用例,执行测试用例:

install pts/ffmpeg

run pts/ffmpeg

 

5.1      自动化跑用例

echo –e "n\n" | phoronix-test-suite run pts/ffmpeg

 

image.png


ARM的跑分性能一般般。不过我们要把价格因素考虑进去。

都是4U8GX861.3/小时,ARM0.8/小时。

 

下图是相同规格的X86的:

image.png

 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。