Merge pull request #640 from cyphar/add-cgroup-pids-stats-limit

libcontainer: cgroups: add pids.max to PidsStats
This commit is contained in:
Mrunal Patel 2016-03-13 21:25:45 -07:00
commit 5a91c338f5
3 changed files with 14 additions and 2 deletions

View File

@ -47,11 +47,17 @@ func (s *PidsGroup) Remove(d *cgroupData) error {
} }
func (s *PidsGroup) GetStats(path string, stats *cgroups.Stats) error { func (s *PidsGroup) GetStats(path string, stats *cgroups.Stats) error {
value, err := getCgroupParamUint(path, "pids.current") current, err := getCgroupParamUint(path, "pids.current")
if err != nil { if err != nil {
return fmt.Errorf("failed to parse pids.current - %s", err) return fmt.Errorf("failed to parse pids.current - %s", err)
} }
stats.PidsStats.Current = value max, err := getCgroupParamUint(path, "pids.max")
if err != nil {
return fmt.Errorf("failed to parse pids.max - %s", err)
}
stats.PidsStats.Current = current
stats.PidsStats.Max = max
return nil return nil
} }

View File

@ -80,4 +80,8 @@ func TestPidsStats(t *testing.T) {
if stats.PidsStats.Current != 1337 { if stats.PidsStats.Current != 1337 {
t.Fatalf("Expected %d, got %d for pids.current", 1337, stats.PidsStats.Current) t.Fatalf("Expected %d, got %d for pids.current", 1337, stats.PidsStats.Current)
} }
if stats.PidsStats.Max != maxLimited {
t.Fatalf("Expected %d, got %d for pids.max", maxLimited, stats.PidsStats.Max)
}
} }

View File

@ -54,6 +54,8 @@ type MemoryStats struct {
type PidsStats struct { type PidsStats struct {
// number of pids in the cgroup // number of pids in the cgroup
Current uint64 `json:"current,omitempty"` Current uint64 `json:"current,omitempty"`
// active pids hard limit
Max uint64 `json:"max,omitempty"`
} }
type BlkioStatEntry struct { type BlkioStatEntry struct {