云社区 博客 博客详情
云社区 博客 博客详情

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

tsjsdbd 发表于 2020-03-18 18:06:22 03-18 18:06
tsjsdbd 发表于 2020-03-18 18:06:22 2020/03/18
1
3

【摘要】 如何使用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

这个时候就会出结果:

 

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

 


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

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

 

下图是相同规格的X86的:

 


登录后可下载附件,请登录或者注册

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

评论 (1)


test-wangsu

1楼2020-03-25 12:26:00
这个工具应该也能跑正常云主机吧
0/1000
评论

登录后可评论,请 登录注册

评论

您还没有写博客的权限!

温馨提示

您确认删除评论吗?

确定
取消
温馨提示

您确认删除评论吗?

删除操作无法恢复,请谨慎操作。

确定
取消
温馨提示

您确认删除博客吗?

确定
取消

确认删除

您确认删除博客吗?

确认删除

您确认删除评论吗?

温馨提示

登录超时或用户已下线,请重新登录!!!

确定
取消