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的个数,