internal virtual void Init(LinuxContainerExecutor lce, ResourceCalculatorPlugin plugin ) { InitConfig(); // mount cgroups if requested if (cgroupMount && cgroupMountPath != null) { AList <string> cgroupKVs = new AList <string>(); cgroupKVs.AddItem(ControllerCpu + "=" + cgroupMountPath + "/" + ControllerCpu); lce.MountCgroups(cgroupKVs, cgroupPrefix); } InitializeControllerPaths(); // cap overall usage to the number of cores allocated to YARN yarnProcessors = NodeManagerHardwareUtils.GetContainersCores(plugin, conf); int systemProcessors = plugin.GetNumProcessors(); if (systemProcessors != (int)yarnProcessors) { Log.Info("YARN containers restricted to " + yarnProcessors + " cores"); int[] limits = GetOverallLimits(yarnProcessors); UpdateCgroup(ControllerCpu, string.Empty, CpuPeriodUs, limits[0].ToString()); UpdateCgroup(ControllerCpu, string.Empty, CpuQuotaUs, limits[1].ToString()); } else { if (CpuLimitsExist()) { Log.Info("Removing CPU constraints for YARN containers."); UpdateCgroup(ControllerCpu, string.Empty, CpuQuotaUs, (-1).ToString()); } } }
public virtual void Init(LinuxContainerExecutor lce) { }
/// <exception cref="System.IO.IOException"/> public virtual void Init(LinuxContainerExecutor lce) { this.Init(lce, ResourceCalculatorPlugin.GetResourceCalculatorPlugin(null, conf)); }