Example #1
0
        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());
                }
            }
        }
Example #2
0
 public virtual void Init(LinuxContainerExecutor lce)
 {
 }
Example #3
0
 /// <exception cref="System.IO.IOException"/>
 public virtual void Init(LinuxContainerExecutor lce)
 {
     this.Init(lce, ResourceCalculatorPlugin.GetResourceCalculatorPlugin(null, conf));
 }