运行在Docker容器内的纱线容器

在Docker容器中运行yarn nodemanagers时,我有一些关于资源分配的问题。

  1. docker和yarn都使用cgroups来pipe理cpu资源。

  2. 我的理解是, cgroups不会将cpus专用于进程,而是将cpu时间用于进程。

  3. 如果一个纱线集装箱在docker集装箱内运行,则有2个limits 。 一个用于纱线容器,另一个用于docker集装箱。 由于我们正在处理的时间段,而不是专门的计划,有可能内部limit和外部limit是相互不同步的? 还是内部容器可以直接访问节点内核,并可以分配自己的CPU limit 。 任何关于此的文档将不胜感激,因为我无法在网上find任何东西。

我担心的是,如果在docker集装箱上有6个硬件CPU limit ,那么运行分配3个虚拟CPU的单个纱线容器实际上并不会获得3个虚拟CPU资源,因为时隙在内部和外部外部容器。