解决方案:广电采集系统IO优化一例

优采云 发布时间: 2022-11-20 20:29

  解决方案:广电采集系统IO优化一例

  广电采集系统IO优化实例

  东瓜哥在上一篇文章中介绍了FVCOM系统(finite volume coastal ocean model)在气象和海洋超算领域的IO优化案例,网友反响不错。这次给大家介绍一个广电采集系统IO优化的案例。必须指出的是,任何存储系统都不可能在任何场景下都表现出最优的IO性能,需要对其进行微调。可以说,这是软件定义存储“场景化定制”的关键所在。久经考验的产品,出货量越多,遇到的坑和场景越多,产品积累就越稳定、越优秀。

  广电业务每一步都要跟存储打交道

  软件定义存储在广电场景的应用

  广电产业涵盖由监管、电视台、制作公司、网络电视台等单位组成的产业生态。至于广电行业的主营业务,业内有很多叫法,比如媒体云、整站网、集成制作等,不管叫什么,整个过程都会涉及采集的步骤、编辑、播放、管理、存储。每一步都会处理存储,这次我们将重点放在采集

系统上。

  采集、编辑、播放、存储等过程与存储密切相关

  采集系统作为整个广电系统的输入源,其重要性不言而喻。其中涉及数字音频、转码技术、声音和合成处理等多项关键技术,存储子系统能否持续输出稳定的数据流是上述技术能否发挥作用的关键。

  简单来说,采集系统就是接收卫星传输数据,通过采集服务器存储原创

码流和转换后的数据,为后续的编辑、播出、管理、存储提供数据基础。大致流程如下:

  广电行业数据采集业务

  广电采集IO特点:带宽稳定,高并发

  视频流服务追求持续稳定的带宽和足够高的并发,但对时延不敏感。它对存储系统的要求是链路需要足够稳定,误码率低,这就对HBA控制器的硬件质量、固件、驱动稳定性提出了要求;另外,要求cache flash管理足够稳定,一般来说Disk flashing会影响前端IO性能。常规的方法是锁定相应的页面,从刷机到解锁再到优化进行操作。此外,一些方法使用了无锁设计。总之,要让单路流稳定连续,在IO路径上添加足够的缓冲区是关键。第二,为了满足多路并发的需求,后端的并发必须足够高。从接口到后端硬盘,数量要够High;内部IO处理模块之间也需要有足够的队列数和足够的深度进行缓冲。

  基于文件协议的接入方式是广电领域最常用的方式。虽然偶尔会使用块存储,但 NAS 访问更为常见。它可以有NFS和CIFS等标准协议,也可以有供应商的私有文件访问协议。但无论如何,应用系统看到的一定是文件目录,而不是块设备盘符。

  采集系统IO优化示例

  

" />

  某广电客户的采集业务分为两部分,一部分是音视频节目流(500个频道节目流,码率1.5Mb/s,客户端每2MB写入一次缓存,每个time takes 0.2s),第二部分是原创

码流(100个源码流,码流32Mb/s,客户端每写入8MB缓存耗时0.6s),一共有6台video capture server,每台采集服务器最多可以配置15个节目,因为所有的节目都需要使用CPU进行转码,从MPEG2转H264,非常消耗CPU,所以每个采集服务器支持的节目数量是有限的(目前,客户端主机最多支持 15 个节目流)。

  用户原使用某品牌传统双控存储系统,因性能达不到预期目标,无法满足业务持续增长带来的容量和性能扩展需求,升级为浪潮AS13000-Rack适用于*敏*感*词*机架式分布式 AS13000-Rack不仅支持块存储接入,还支持NFS、CIFS和浪潮私有协议接入,NAS接入也是广电系统中最常用的接入方式。

  浪潮整柜软件定义存储

  节点布局

  整机柜SDS性能优化原理

  浪潮软件定义存储的两种产品形态

  案例过程分析

  项目POC测试时,6台采集服务器中有3台在运行客户端应用时正常,其中2台断线5秒,随后快速恢复并进行IO;一个断开了 1 分钟。这种奇怪的现象在其他场景中没有观察到,这显然与广电采集系统的IO特性有很大关系,比如连续流+高并发。这直接关系到存储系统内核IO处理栈对这类IO特性的适配,包括高并发多线程间的缓冲、路径长度、资源同步等复杂问题。

  浪潮派出场景关怀SE、软件高级工程师、硬件高级工程师和POC测试代表到现场分析解决问题。最懂应用场景的Scenario Care SE使用Strace和BlockTrace工具跟踪上层应用软件的IO行为,对系统日志进行详细分析。IO路径上各个模块的状态,定位当前问题可能有以下三种原因:

  1、某采集服务器长时间断开(1分钟),主要是smb协议的SMBD进程死锁。死锁是由SMB多线程池的mutex和异步线程的mutex引起的。至于死锁的原因,与采集系统持续高码率高并发有直接关系,是其他类似场景无法遇到的坑。

  2、两台短期(5s)采集服务器断开连接。主要原因是存储系统部分文件访问接口调用时间过长,导致客户端(采集服务器)主动断开连接。断开连接后,就不能写入了。尝试三次后,将关闭当前文件并重新创建文件。这时候会重新创建连接进行挂载。反复排查,耗时较长的接口有:fstat、statfs、stat。通过定位,三个接口的总耗时超过了28s,这对于对时间要求极高的采集业务系统来说是无法接受的。

  3、通过日志还发现部分IO请求延迟高达60s,内核报atting attempted task abort!日志中的scmd(ffff8801734b1180),怀疑是HBA驱动、硬盘等硬件问题导致的。

  精准调整一一解决

  

" />

  有了以上分析方向,工程师加班加点开始解决问题。第一选择是解决死锁坑,修改相应代码;其次,优化IO访问的关键路径,修改Stat、statfs、stat的调用流程,简化路径,优化数据结构和访问方式,最终优化到5s以内;检查硬件盘、SAS卡、背板等逐层“解剖”硬件跟踪,SAS*敏*感*词*抓包测试,最终断定SAS卡驱动有问题,报到后升级SAS卡驱动厂家解决;解决所有问题,发布补丁 打包升级用户现场系统。

  问题

  问题的根源

  AS1300调优结果

  某采集服务器长时间断线(1分钟)

  smb协议的SMBD进程死了

  解决僵局

  两台短时(5s)采集服务器断开

  fstat、statfs、stat三个节点耗时较长,超过28s

  优化到5s以内

  日志查看发现部分IO延迟超过60s

  硬件问题,如HBA驱动、硬盘

  提交SAS卡厂商解决,升级SAS卡驱动解决问题

  调音效果

  最终,客户的6台采集服务器成功上线,500路节目流和100路原创

视频流稳定运行。

  目前,浪潮存储已针对业界8个典型行业应用全面展开深度分析和优化。不了解用户业务场景的存储系统不是好系统。存储系统必须具有灵活性,能够适应上层应用场景。冬瓜哥不禁想起了5年前的产品设计,可以不间断的适应任何场景的IO优化问题。可惜,可惜。冬瓜哥问了当时产品线的重要人物,说给我一个团队,我帮你弄出来。可惜,对牛弹琴。不过冬瓜哥很高兴看到浪潮将应用适配上升到了战略层面。东瓜哥认为,其他存储系统厂商应该借鉴浪潮的模式,将应用适配进行到底。在此,冬瓜哥也很欣赏浪潮愿意与行业分享自己的经验,而不是独当一面,可见浪潮作为行业大佬的风范。

  解决方案:大数据智能市场竞争分析报告

  提供广告优化方向:导入所有已打开的字词,然后在不同时间采集

和分析您的ASIN,以查看是否存在曝光和曝光位置。

  

" />

  发现/拓宽流量渠道: 根据ASIN反检查流量术语分析的结果,如果竞争对手出现在关键词页面上,但我们没有,如果我们在关键词下具有竞争力,我们可以推广关键词页面以扩大搜索流量,从而增加订单。

  跟进推广效果:对于异站推广、促销、快卖等,可以将导入关键词实时采集

,在导出Excel中筛选自己的ASIN查看关键词的位置,判断此活动是否有助于商品关键词排名,从而调整数量和节奏。

  

" />

  分析产品流量变化的原因

  :当产品流量变化较大时,可以查看关键词下方的位置变化,是否有强对手。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线