检查可用的处理核心

时间:2012-02-27 01:25:00

标签: linux shell unix ffmpeg

如果Mac计算机上有可用资源,我需要编写一个代码转发脚本来发出适当的ffmpeg命令。该机器是2 x 2.66 GHz 6核。基本上我想要使用的逻辑是:

[cron every x minutes]
if available_cores:
    pull front file in queue and transcode
else:
    pass

我如何检查是否有可用的处理单元来运行ffmpeg

3 个答案:

答案 0 :(得分:3)

使用Unix给你的东西:)我建议经常未知的batch程序(at的一部分),当负载平均值低于特定阈值时,它会调用争论程序,把他们排在队列中。 man batch

答案 1 :(得分:1)

我将使用uptime命令中的平均负载,如果负载足够低,则启动一个。没有可能是空闲核心,因为任何现代系统都有足够的随机低优先级的东西在后台运行,你永远不会看到一个完全空闲的低。因此,寻找低负载平均值并基于此。

答案 2 :(得分:1)

/ proc / cpuinfo将为您提供核心数

所以你可以阅读它并提取核心数。

然后执行进程列表并计算FFMPEG进程。

从另一个中减去一个,你的状态非常好。

应该给你有条件的。

或者通过正常运行时间查看负载,并根据显示的值执行条件化。

在SMP下,unix中还有一个进程对CPU的亲和力。

查看工具任务集。您可能希望在/ var somewhere中设置进程ID跟踪器,然后管理与脚本的关联。