From 0bee5e0b01a5be4cc35932d54c56c770e0645f58 Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Mon, 26 Apr 2021 19:59:32 -0700 Subject: [PATCH] libct/cg/fs: add GetStats benchmark On my CentOS 8 VM it shows: > BenchmarkGetStats-8 8376 625135 ns/op Signed-off-by: Kir Kolyshkin --- libcontainer/cgroups/fs/fs_test.go | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/libcontainer/cgroups/fs/fs_test.go b/libcontainer/cgroups/fs/fs_test.go index c899ff8f1..dfcad78b4 100644 --- a/libcontainer/cgroups/fs/fs_test.go +++ b/libcontainer/cgroups/fs/fs_test.go @@ -104,3 +104,35 @@ func TestTryDefaultCgroupRoot(t *testing.T) { t.Errorf("tryDefaultCgroupRoot: want %q, got %q", exp, res) } } + +func BenchmarkGetStats(b *testing.B) { + if cgroups.IsCgroup2UnifiedMode() { + b.Skip("cgroup v2 is not supported") + } + + cg := &configs.Cgroup{ + Path: "/some/kind/of/a/path/here", + Resources: &configs.Resources{}, + } + m := NewManager(cg, nil, false) + err := m.Apply(-1) + if err != nil { + b.Fatal(err) + } + defer func() { + _ = m.Destroy() + }() + + var st *cgroups.Stats + + b.ResetTimer() + for i := 0; i < b.N; i++ { + st, err = m.GetStats() + if err != nil { + b.Fatal(err) + } + } + if st.CpuStats.CpuUsage.TotalUsage != 0 { + b.Fatalf("stats: %+v", st) + } +}