cgroup控制cpu,/proc/mounts下有一个/sys/fs/cgroup/cpu配置路径,此部分是cgroup用来控制cpu隔离的路径配置。
在/sys/fs/cgroup/cpu下添加子路径hadoop-yarn,这个路径是yarn用来控制cpu的隔离的根路径
通过yarn.nodemanager.linux-container-executor.cgroups.hierarchy配置。
每一个container启动时根据container的名称在根路径下创建子路径来控制这个container的cpu资源
yarn的cgroup控制:
cgroups 里,可以用 cpu.cfs_period_us 和 cpu.cfs_quota_us 来限制该组中的所有进程在单位时间里可以使用的 cpu 时间。
这里的 cfs 是完全公平调度器的缩写。
cpu.cfs_period_us 就是时间周期(每个cpu core),默认为 1000000,即1秒。
cpu.cfs_quota_us 就是在这期间内可使用的 cpu 时间,默认 -1,即无限制。
cpu.cfs_quota_us 的值在单core的情况下小于或等于cpu.cfs_period_us的值,在多core的情况下大于这个值。
配置项:yarn.nodemanager.resource.percentage-physical-cpu-limit,默认值100,表示不显示cpu资源。
这个配置用于限制yarn对当前的nodemanager的物理内存的使用百分比,通过这个配置与cpu的逻辑core进行乘法,得到可用的cpu的core.
如果配置有对cpu使用的阀值时,对yarn的根路径的cgroup的控制:
按1000*1000微秒为cpu的调度周期除以cpu的可用的core的个数,
在/sys/fs/cgroup/cpu下添加子路径hadoop-yarn,这个路径是yarn用来控制cpu的隔离的根路径
通过yarn.nodemanager.linux-container-executor.cgroups.hierarchy配置。
每一个container启动时根据container的名称在根路径下创建子路径来控制这个container的cpu资源
yarn的cgroup控制:
cgroups 里,可以用 cpu.cfs_period_us 和 cpu.cfs_quota_us 来限制该组中的所有进程在单位时间里可以使用的 cpu 时间。
这里的 cfs 是完全公平调度器的缩写。
cpu.cfs_period_us 就是时间周期(每个cpu core),默认为 1000000,即1秒。
cpu.cfs_quota_us 就是在这期间内可使用的 cpu 时间,默认 -1,即无限制。
cpu.cfs_quota_us 的值在单core的情况下小于或等于cpu.cfs_period_us的值,在多core的情况下大于这个值。
配置项:yarn.nodemanager.resource.percentage-physical-cpu-limit,默认值100,表示不显示cpu资源。
这个配置用于限制yarn对当前的nodemanager的物理内存的使用百分比,通过这个配置与cpu的逻辑core进行乘法,得到可用的cpu的core.
如果配置有对cpu使用的阀值时,对yarn的根路径的cgroup的控制:
按1000*1000微秒为cpu的调度周期除以cpu的可用的core的个数,

本文详细介绍了YARN如何利用cgroup进行CPU资源隔离和调度。通过配置cgroups,YARN能够在每个Container中限制CPU使用,包括设置cpu.cfs_period_us和cpu.cfs_quota_us来控制CPU时间片分配。此外,还讨论了yarn.nodemanager.linux-container-executor.cgroups.hierarchy、yarn.nodemanager.resource.percentage-physical-cpu-limit等关键参数的含义和计算方法,以及当启用strict-resource-usage时,如何计算Container的实际可用CPU核心数。
最低0.47元/天 解锁文章
1013

被折叠的 条评论
为什么被折叠?



