首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Heroku worker dynos上的FFMPEG耗时太长-运行时出现超时错误

Heroku是一家云平台提供商,提供了一种简单的方式来部署、运行和扩展应用程序。Heroku使用称为dynos的容器来托管应用程序的不同组件。在这个问题中,我们遇到了在Heroku的worker dynos上运行FFMPEG时耗时太长导致超时错误的问题。

FFMPEG是一个开源的音视频处理工具,可以用于转码、剪辑、合并、解码等多媒体处理任务。然而,由于FFMPEG的处理任务可能非常耗时,特别是在大型文件或复杂操作时,可能会导致超时错误。

解决这个问题的方法有以下几种:

  1. 优化FFMPEG命令:检查FFMPEG命令是否可以进行优化,例如使用更高效的参数、减少处理步骤或使用更适合的编解码器。这可以减少处理时间并降低超时错误的风险。
  2. 增加dynos的资源:如果FFMPEG任务需要更多的计算资源才能在规定时间内完成,可以考虑增加worker dynos的数量或升级到更高配置的dynos。这样可以提供更多的计算能力来加速处理过程。
  3. 异步处理:将FFMPEG任务转换为异步处理,可以避免直接在请求处理过程中等待任务完成。可以使用消息队列或任务调度系统来处理这些任务,将任务提交到后台进行处理,并在处理完成后通知应用程序。
  4. 使用云原生技术:云原生技术可以帮助应用程序更好地利用云平台的资源和服务。例如,可以使用容器编排工具(如Kubernetes)来动态调整资源分配,根据任务的需求自动扩展或缩减dynos的数量。
  5. 使用腾讯云相关产品:腾讯云提供了一系列与云计算和多媒体处理相关的产品和服务,可以帮助解决这个问题。例如,可以使用腾讯云的云服务器(CVM)来提供更强大的计算资源,使用云函数(SCF)来实现异步处理,使用云原生容器服务(TKE)来管理容器化的应用程序等。

总结起来,解决Heroku worker dynos上的FFMPEG耗时太长导致超时错误的方法包括优化FFMPEG命令、增加资源、异步处理、使用云原生技术和腾讯云相关产品。具体的解决方案需要根据实际情况和需求进行选择和调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 FFmpeg 与 WebAssembly 实现纯前端视频截帧

FFmpeg 截图任务队列 了解到我们服务端已经有一套 FFmpeg 截图方案,不过是异步任务队列形式,耗时也在分钟级别,可能在视频上传完成后,也没法得到截图结果,所以没法满足需求。...ASSERTIONS=1:用于为内存分配错误启用运行时检查,ASSERTIONS 默认是开启,在存在编译优化参数 (-O1+) 时候会被关闭 ALLOW_MEMORY_GROWTH=1:设置可变内存...错误信息捕获 FFmpeg 错误管理是在 C 运行时基础扩展,根据函数返回值 int 进行判断,成功返回值大于或等于 0(>=0),错误返回值为负数,错误值继承 c 运行时错误值,扩展自己错误值定义在...首帧耗时平均在 467ms,整体截取 8 帧耗时在 2.47s 左右,主要在 window qq 浏览器截帧耗时明显慢很多,偶现最长到了 36.56s。 3....截帧成功率达到 99.86%,设置了首帧任务超时 18s,出现超时及失败情况目前看非常少。

3.8K11

Nginx+FPM结构模型剖析及优化

,格式例如 8 4k|8k 另外还有一些其它缓存、长连接机制不做介绍,当设置不合理时也会出现5XX错误,nginx文章介绍写了有很多,不再做过多说明。...master进程只有一个,负责监听端口和管理worker进程,每次传来任务,与前端nginx建立3次握手后放入连接队列,供worker进程进行accept,当worker进程出现错误或执行超时时,负责将...php工作进程数也不是越大越好,这种进程模型运行时间长了占内存会增大,一般一个php进程是占到30M左右内存,开多少合适自己算吧,nginxworker进程一般也能跑到30M内存,综合计算一下...2、nginx日志里产生504错误 第一种情况,phpworker进程池处理慢,无法尽快处理等待accept链接队列,导致3次握手后链接队列长时间没有被accept,nginx链接等待超时;返回504...后nginx对应error日志是110: Connection timed out 第二种情况,后端php-fpm执行脚本时间太长,超过了nginx配置超时机制,这个时候也是会报出504错误

1.4K60

备战秋招 面试真题: 给你一个Demo 你如何快速定位ANR?

一、前期基础知识储备 1.ANR错误定义 在Android,如果你应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作“应用程序无响应”(ANR:Application Not...超出就会提示应用程序无响应(ANR错误)。 ?...2.ANR错误出现原因 只有当应用程序UI线程响应超时才会引起ANR 超时产生原因包括: ①当前事件没有机会处理,例如UI线程正在响应另外事件,当前事件被某个事件给阻塞掉了; ②当前事件正在处理...但是由于耗时太长没有能及时完成。...二、ANR定位方式及优化 1.ANR错误定位 如果开发机器出现ANR问题时,系统会生成一个traces.txt文件放在/data/anr下,最新ANR信息在最开始部分。

67150

HTTP状态码502与504区别及解决思路

首先得搞清楚502错误和504错误区别,以我比较熟悉PHP为例,502是PHP-FPM(PHP进程管理器没办法从进程池里找到可分配进程来处理请求了,就会返回502错误,本质是PHP进程状态异常...;而504错误是网关超时,它代表负责处理HTTP请求PHP进程超过了约定最长时间仍未返回处理结果,出现这种异常原因通常是sql执行时间太长或代码里出现了死循环之类问题。...好了,下面说一下遇到502错误时怎样判断PHP进程数是否够用,办法是很简单,思路就是看一下目前开启了多少个PHP-CGI进程,再看一下目前非空闲状态PHP-CGI进程,如果这两个数是接近,就意味着当出现新请求时...,容易出现502错误。...,那不要想了,就是这里问题,把相应SQL优化好就行了,如果数据库慢日志里并没有明显异常情况,那就得考虑是不是代码里有耗时太长逻辑,或有与外部接口通讯代码,因为网络延时或对方响应时间太长,而你异常机制没做好

5.2K30

ANR 原理与实战技巧

比如打开wifi(因为跨进程操作,有可能wifiserver那边处理超时) 读写文件(操作是个iowait负载较大行为,很容易anr) 查询语句(在数据库内容暴增之后,出现严重性能问题,产生anr)...● 如果我们看到栈信息,去看对应代码,发现此处是个跨进程调用,循环调用,查询语句,那么出现 anr 原因,可以去怀疑这里耗时,等待。...最后定位原因是异步操作,是基于数据库里面的图书列表,如果网络推送下来很多书,然后查询数据,遍历以及整理数据,非常耗时,导致anr。...占用高进程 字段及意义 : user : CPU 在用户态运行时 kernel : CPU 在内核态运行时间 idle : CPU 空闲时间,不包括 iowait 时间 iowait : CPU...等待 I/O 操作时间 irq : CPU 硬中断时间 softirq : CPU 软中断时间 minor/major: 表示页错误次数 , 如果 ANR 发生时发现 CPU 使用率中 iowait

1.8K71

聊聊规模化容器

布莱恩·希克森:我们使用 Heroku,它采用了称为 dynos 轻量级容器,用于我们网络服务器、后台作业以及机器学习微服务一个子集。其他机器学习微服务使用 Kubeflow。...布莱恩·希克森:当构建在主分支中通过时,我们使用 Heroku 不断地部署应用程序。...同时,我们也使用合成和真实用户监测来发现严重错误和性能问题。我们这个团队使用 KPI 来跟踪基础设施趋势。服务器正常运行时间是关键健康指标,在 2020 年这一指标为 99.999%。  ...布莱恩·希克森:容器使我们能够在一个云供应商训练新机器学习模型,并且当我们准备将它们与我们主要应用集成时,可以轻松地迁移到另一个云供应商。...令人惊讶是,我们几乎没有遇到任何与容器本身相关问题。一般情况下,任何问题都存在于比容器级别更高抽象层次;例如,我们在部署应用程序时发现了一些错误,但这些错误并不特定于容器使用。

88820

主流 PaaS 平台架构:谷歌GAE、AEB、Cloud Foundry、Heroku

在 AEB 中,前者被命名为 Web Server Environment,后者被命名为 Worker Environment。...,支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒内进行应用程序部署和扩展。...Heroku 路由模块被称为 Hermes,采用 Erlang 语言编写,其能够动态感知一个应用中包含多少个 dyno,基于一定策略进行任务分发,另外我们还可以设置超时保护机制,在Hermes 就拒绝掉外部请求...Heroku 打破了日志输出传统观点,我们一般认为日志是非常重要、不可缺失,日志以文件形式存放在本地磁盘中,并且有开头、结尾,重视日志文件中每一行内容在时间排序关联性。...Heroku 就为这些后端服务访问定义了一套 add-ons API,从而实现了代码与某个固定服务解耦。在 Heroku 最流行后端服务是 PostgreSQL 数据库。

6.2K20

花椒前端基于WebAssembly H.265播放器研发

但我们知道,FFmpeg 是用 C 语言开发,如何把 FFmpeg 运行在 Web 浏览器,并且给其输入待解码直播流数据呢?使用 WebAssembly 能够解决我们问题。...其中第 1 步生成 AST,JS 代码越多,耗时就会越长,也是整个过程中相对较慢一个环节。而 Wasm 本身已经就是字节码,无需这个环节,所以整体运行速度要更快。...在第 3 步中,由于 Wasm 数据类型已经是确定,因此 JIT 不需要根据运行时收集信息对数据类型进行假设,也就不会出现重复优化周期。...前面提到过 asm.js,在本质也是 JavaScript,在 JS 引擎中运行时同样要经历上述几个步骤。...Web Worker Web Worker 为 Web 内容在后台线程中运行脚本提供了一种简单方法。线程可以执行任务而不干扰用户界面。

5.7K96

如何使用 Redis 实现分布式锁

一旦有竞争条件出现,在没有保护操作前提下,可能会出现不可预知问题。 而现代系统大多为分布式系统,这就引入了分布式锁,要求具有在分布各处服务保护资源能力。...但此方案也有如下问题: 如果锁被错误释放(如超时),或被错误抢占,或因redis问题等导致锁丢失,无法很快感知到。...方案4:SET key randomvalue NX PX 方案4在3基础,增加对 value 检查,只解除自己加锁。 类似于 CAS,不过是 compare-and-delete。...并且在释放锁时能检测到锁是否被错误抢占、错误释放,从而进行特殊处理。...超时时间不能太长,否则会导致意外死锁后长时间等待。除非人为接入处理。 因此建议是根据任务内容,合理衡量超时时间,将超时时间设置为任务内容几倍即可。

1.5K10

解Bug之路-记一次存储故障排查过程

偶发性错误 之前出过类似register err这样零星报警,最后原因是安全扫描,并没有对业务造成任何影响。而这一次,类似的报错造成了业务大量连接超时。...突然出现这个错误感觉是环境出现了某些问题。而且由于线上应用和中间件都是集群,出问题时候都不是孤立机器报错,没道理所有机器都正好有问题。如下图所示: ?...事实只有对应应用和中间件才报错,其它应用依旧稳稳当当。 又发生了两次 就在笔者觉得这个偶发性问题可能不会再出现时候,又开始抖了。而且是一个下午连抖了两次。脸被打的啪啪,算了算了,先重启吧。...笔者感觉明显SQL执行有问题,只不过DBA是采样而且将采样耗时平均,偶尔几笔耗时并不会在整体SQL耗时里面有所体现。 ?...由于app1commit特别慢而卡住了reactor1线程,从而落在reactor1线程握手操作都会超时!如下图所示: ?

64132

解Bug之路-记一次存储故障排查过程

整个Bug现场如下图所示: 偶发性错误 之前出过类似register err这样零星报警,最后原因是安全扫描,并没有对业务造成任何影响。而这一次,类似的报错造成了业务大量连接超时。...突然出现这个错误感觉是环境出现了某些问题。而且由于线上应用和中间件都是集群,出问题时候都不是孤立机器报错,没道理所有机器都正好有问题。...而且如果是网络出现问题,同一网段应用应该也都会报错 才对。事实只有对应应用和中间件才报错,其它应用依旧稳稳当当。 又发生了两次 就在笔者觉得这个偶发性问题可能不会再出现时候,又开始抖了。...笔者突然发现,和之前慢SQL一样,都是调用第二个数据库超时,而DBA那边却说SQL执行没有任何异常, 笔者感觉明显SQL执行有问题,只不过DBA是采样而且将采样耗时平均,偶尔几笔耗时并不会在整体...如下面所示: 由于app1commit特别慢而卡住了reactor1线程,从而落在reactor1线程握手操作都会超时

28040

关于“Python”核心知识点整理大全62

注意 在Windows系统中,有些必不可少包可能无法安装,因此如果在你尝试安装有些这样 包时出现错误消息,也不用担心。重要是让Heroku在部署中安装这些包,下一节就 将这样做。...有鉴于此,我们可以信心满满,深信项目部署到Heroku后,行为将与它在 本地系统完全相同。当你在自己系统开发并维护各种项目时,这将是一个巨大优点。...注意 如果出现错误消息,指出不能使用你指定Python版本,请访问https://devcenter. heroku.com/并单击Python,再单击链接Specifying a Python Runtime...Heroku使用PostgreSQL (也叫Postgres)——一种比SQLite更高级数据库;这些设置对项目进行配置,使其在Heroku 使用Postgres数据库。...其他设置作用分别如下:支持HTTPS请求(见3);让Django能够使用 HerokuURL来提供项目提供服务(见4);设置项目,使其能够在Heroku正确地提供静态 文件(见5)。

14010

我接手了一个“垃圾”系统,全栈优化后将性能提升了350倍

Heroku 在技术上将整体请求响应时间设定为 30 秒超时,实际,我们希望大多数面向客户页面请求在 3 秒内完成。我个人认为,所有响应时间超过 8 秒情况都可以认为是中断。...虽然在其他平台上也可以设置扩展,但我们使用Heroku,而 Heroku 使扩展变得简单。 你可以控制可用 dynos 数量,也可以增加每个 dynos 能力。...我具体做一个代码优化是,用一个聚合数据库查询替换一个耗时几秒并运行多个查询长时间计算。...在人不多时候,这是可以接受,但是在大捐赠日,它将针每个请求执行重新计算。 ? 缓存失败导致内部服务器错误响应增加了 500 个,原因是超时。...我通过检查发现,通常只有几个作业队列中有数十万个作业——全部是 CacheUpdateJob。 通过进一步调查,我了解到,CacheUpdateJob 运行时长已经超过了它运行频率。

69930

日请求8亿Web流量分布式系统高容错性实践

主服务请求失败,然后再到备份服务请求,这个环节请求耗时就至少翻倍增长,假设主服务出现连接(connect)超时,那么耗时就更是大幅度增加。...一个服务在正常状态下,获取数据也许只要50ms,而服务超时时间通常会设置到500-1000ms,甚至更多,一旦出现超时重试场景,请求耗时必然大幅度增长,很可能会比较严重地影响用户体验。...假设,我们一个服务机器,启用了100个处理请求workerworker超时时间设置为5秒,1个worker处理1个任务平均处理耗时是100ms。...一旦比较大概率出现这类型超时异常,系统吞吐率就会大面积下降,有可能耗尽所有的worker(资源被占据,全部在等待状态,直到5s超时才释放),最终导致新请求无worker可用,只能陷入异常状态。...例如,回到上面的例子,平均处理耗时是100ms,那么我们不如将超时时间从5s下调到500ms。从直观看,它就解决了吞吐率下降和用户等待过长问题。

67110

收到告警后如何快速定位问题

收到告警消息后,如何快速定位问题 关联版本发布:如果是新版本发布后新产生告警,就首先考虑告警与发布内容之间关系,如果不能快速解决,就需要回滚版本 收集多组告警:收集一起出现所有错误错误消息或错误日志...,分析什么原因可能导致一组错误。...Command: (ZRANGEBYSCORE) 上面两个错误是突然出现,如果只看第一个错误,就可能以为是redissonbug(https://github.com/redisson/redisson...实际是因为命令ZRANGEBYSCORE在大key执行,耗时太长,引发其他请求也超时 尽早定位:收到告警消息,需要尽早定位问题,防止错误扩散 有一次发布后,收到一个"订单不存在"告警消息,因为看起来问题不大...,也没有影响用户下单,就没有第一时间去定位,等第二次出现"结算单不存在"时,才觉得有新问题,原来是自定义多数据源时,漏了自定义事务管理器,导致数据不一致 快速跳转:告警消息中需要携带关键信息,特别是调用链

1.4K10

Revvel如何将视频转码速度提升几十倍?

另外,由于视频处理整体是从前往后,所以在FFmpeg处理一个块时,我们也会主动预取下一个数据块,以免出现CPU等待IO造成性能损失。...FFmpeg挑战 首先, 动态链接FFmepg在lambda中运行不是很稳定,所以我们目前基本都是使用静态链接。虽然文件尺寸更大,但仍在Lambda限制之内。 另外,创建进程也可能出现问题。...如果多进程出现问题,lambda沙盒提供了很多linux实用工具可用来调试,比如spawn、ps、top,在你函数里调用他们,日志会出现在CloudWatch里,就像一个虚拟机一样。...运行时间可能变化。准备好重试超时函数,尤其是网络受限函数,这些函数可能只是恰巧超时而已。 成果展示 使用情况统计数据。...一是lambda function有5分钟运行时间限制,想生成比如4k 60fps视频就很难完成。

1.8K30

Go 每日一库之 tunny

我们也可以使用带超时Process()方法:ProcessTimed()。传入一个超时时间间隔,如果超过这个时间还没有空闲 worker,或者任务还没有处理完成,就会终止,并返回一个错误。...超时有 2 种情况: 等不到空闲 worker:所有 worker 一直处理繁忙状态,正在处理任务比较耗时,无法短时间内完成; 任务本身比较耗时。...-1) + fib(n-2) } 我们先看任务比较耗时情况,创建Pool对象。...这里创建 worker 实际是包装了一层workerWrapper结构: // src/github.com/Jeffail/worker.go type workerWrapper struct...第一种情况,如果超时了,说明 worker 都处于繁忙状态,直接返回任务超时。后面两种情况实际是任务已经开始执行了,但是在规定时间内没有完成。这两种情况,需要终止任务执行。

1.4K10

Serverless 音视频转码 —— 芒果 TV 落地实践(下)

在《Serverless 音视频转码 —— 芒果 TV 落地实践()》中,我们回顾了芒果 TV 吴坚强老师在 techo 大会精彩分享,芒果TV 音视频编解码业务团队通过使用腾讯云 Serverless...云函数进程中两个任务线程分别接收 FFmpeg 任务进程向函数进程输出 FFmpeg 日志流与转码后文件流,从而实现流式读写 COS 和实时日志输出转码应用场景。 ?...同时支持输出 FFmpeg 应用完整日志。 长时运行利用云函数长时运行机制,支持 12h-24h 运行时长,可覆盖大文件耗时较长转码场景。...借助函数异步运行能力自主研发方案 在音视频转码、ETL 大体量数据处理、AI 推理等单任务重计算场景下,函数单实例运行时需要更多算力及更长时间稳定运行。...云函数 SCF 提供了一种全新函数运行机制,您可通过 SCF 提供函数异步执行模式,提升执行超时时间上限和解决现有运行机制问题。 操作步骤 登录 云函数控制台,单击左侧导航栏【函数服务】。

1.2K20
领券