我们使用 ffmpeg 将视频转换为特定格式。服务器的 CPU 使用率已达到 100%,所以我的网站正在关闭。这意味着 ffmpeg 进程对我的主服务器有很大的影响。
答案1
这似乎是一台小型服务器,具有 4 GB RAM 和虚拟双核 CPU,很可能使用共享资源。显然,这台机器无法处理视频编码任务和同时为一个网站提供服务,除非你在视频编码完成所需的时间方面做出妥协。
在Linux下你可以运行nice
降低进程的优先级。
例如,运行:
nice ffmpeg -i <input> <output>
“niceness”值的范围是 -20 到 19,值越高,进程的优先级越低。如果没有其他选项,nice
则将进程的值加 10,默认情况下为 0。
话虽如此,我还是建议您不要在同一台机器上运行 Web 服务器和密集处理任务,除非您可以以某种方式将它们分开,以免高资源消耗导致您的网站崩溃。
答案2
除了 slhck 的建议之外,如果还不够好,nice
您还可以使用选项限制编码线程。-threads
nice
另一种选择是将编码卸载到硬件上,例如 nvenc(如果您的服务器支持的话)。
答案3
使用此参数:-threads 1
适用于较少的 CPU 核心。