user1661677 Asked: 2016-10-05 21:00:26 +0800 CST2016-10-05 21:00:26 +0800 CST 2016-10-05 21:00:26 +0800 CST Ubuntu 会自动排队数百个进程吗? 772 我正在创建一项服务,该服务将一次调用可能数百甚至数千条ffmpeg命令。Ubuntu 16.04 会自动排队这些作业吗? 是否有某种应用程序比其本机方法做得更好? ubuntu-16.04 queue 2 个回答 Voted Best Answer shodanshok 2016-10-05T21:59:23+08:002016-10-05T21:59:23+08:00 任何 Linux 发行版都可以毫无问题地管理多个(可能是数百个)流程实例。 但是,为了获得最佳性能,您应该只使用与您的机器可以管理的硬件线程一样多的进程。 添加更多进程(例如:8 线程机器上的 16 个进程实例)会由于大量缓存垃圾和资源过度使用而降低性能。 EEAA 2016-10-06T04:09:34+08:002016-10-06T04:09:34+08:00 不,如果您启动数千个进程,内核将尽其所能运行这数千个进程。出于显而易见的原因,这不会有好的结局。 要像这样以串行方式运行作业,请使用 gearman 或 RabbitMQ 之类的东西组合一个适当的作业队列系统。这样,作业会在消息队列中排队,并且您的工作进程会使用这些可用的消息,并且一次只运行少量进程。
任何 Linux 发行版都可以毫无问题地管理多个(可能是数百个)流程实例。
但是,为了获得最佳性能,您应该只使用与您的机器可以管理的硬件线程一样多的进程。
添加更多进程(例如:8 线程机器上的 16 个进程实例)会由于大量缓存垃圾和资源过度使用而降低性能。
不,如果您启动数千个进程,内核将尽其所能运行这数千个进程。出于显而易见的原因,这不会有好的结局。
要像这样以串行方式运行作业,请使用 gearman 或 RabbitMQ 之类的东西组合一个适当的作业队列系统。这样,作业会在消息队列中排队,并且您的工作进程会使用这些可用的消息,并且一次只运行少量进程。