Bladeren bron

Merge pull request #5381 from rjnagal/master

Add support for cpu hardcapping to cgroups.
Michael Crosby 11 jaren geleden
bovenliggende
commit
4ed165210f
2 gewijzigde bestanden met toevoegingen van 12 en 0 verwijderingen
  1. 2 0
      pkg/cgroups/cgroups.go
  2. 10 0
      pkg/cgroups/fs/cpu.go

+ 2 - 0
pkg/cgroups/cgroups.go

@@ -16,6 +16,8 @@ type Cgroup struct {
 	Memory       int64  `json:"memory,omitempty"`        // Memory limit (in bytes)
 	Memory       int64  `json:"memory,omitempty"`        // Memory limit (in bytes)
 	MemorySwap   int64  `json:"memory_swap,omitempty"`   // Total memory usage (memory + swap); set `-1' to disable swap
 	MemorySwap   int64  `json:"memory_swap,omitempty"`   // Total memory usage (memory + swap); set `-1' to disable swap
 	CpuShares    int64  `json:"cpu_shares,omitempty"`    // CPU shares (relative weight vs. other containers)
 	CpuShares    int64  `json:"cpu_shares,omitempty"`    // CPU shares (relative weight vs. other containers)
+	CpuQuota     int64  `json:"cpu_quota,omitempty"`     // CPU hardcap limit (in usecs). Allowed cpu time in a given period.
+	CpuPeriod    int64  `json:"cpu_period,omitempty"`    // CPU period to be used for hardcapping (in usecs). 0 to use system default.
 	CpusetCpus   string `json:"cpuset_cpus,omitempty"`   // CPU to use
 	CpusetCpus   string `json:"cpuset_cpus,omitempty"`   // CPU to use
 
 
 	UnitProperties [][2]string `json:"unit_properties,omitempty"` // systemd unit properties
 	UnitProperties [][2]string `json:"unit_properties,omitempty"` // systemd unit properties

+ 10 - 0
pkg/cgroups/fs/cpu.go

@@ -19,6 +19,16 @@ func (s *cpuGroup) Set(d *data) error {
 			return err
 			return err
 		}
 		}
 	}
 	}
+	if d.c.CpuPeriod != 0 {
+		if err := writeFile(dir, "cpu.cfs_period_us", strconv.FormatInt(d.c.CpuPeriod, 10)); err != nil {
+			return err
+		}
+	}
+	if d.c.CpuQuota != 0 {
+		if err := writeFile(dir, "cpu.cfs_quota_us", strconv.FormatInt(d.c.CpuQuota, 10)); err != nil {
+			return err
+		}
+	}
 	return nil
 	return nil
 }
 }