是否有方法配置Linux容器(即。cgroups/命名空间--隔离的过程树)具有实时特性--理想的情况是适合于工业机器控制/机器人,等等?
也许它在任何方面都与容器无关,而且总是提供单个进程的实时功能?OTOH,这样的容器可能包含一个完全不同的Linux发行版,并且可以独占访问多核处理器的一个核心?
目前我还没有任何具体的用例,只是想知道Linux是否能很好地替代可编程序控制器。
发布于 2015-12-18 15:37:16
可能,但可能不是,这取决于您的需求。
“实时”指的是低延迟的概念--也就是说,在理论上,它意味着“没有延迟”,但在实践中,没有延迟是不可能实现的;毕竟,在输入能够产生某种输出之前,总是有一些处理要做,所以总是会有一些延迟,即使它只是一个时钟周期。
然而,有延迟,也有延迟,它们是七种不同的东西;-)
可以通过更改进程的优先级或其调度队列和/或切换到低延迟C库来减少Linux系统上的延迟,这样做将满足某些形式的“实时”设置的要求。如果这是您需要做的全部工作,那么当然,使用容器将允许您将系统的低延迟部分与其他部分分离开来(前提是允许容器中的进程修改它们的调度优先级),并且您应该不会看到太大的差别。
然而,也许你需要做更多。有更多的方法来修改你的延迟。从“最少的工作”到“大部分的工作”,我知道:
如果您需要其中之一,那么容器将不会帮助您,因为容器仍然使用与系统其他部分相同的内核。
话虽如此,虽然在某些情况下可以在容器中运行实时应用程序以及在同一系统上运行其他东西,但我建议不要这样做。在同一个系统上运行多个东西很可能是运行在系统上的应用程序的延迟;因此,即使允许容器执行它需要做的事情,系统也可能无法跟上。
https://unix.stackexchange.com/questions/250221
复制相似问题