mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-11 22:37:14 +08:00
097c6d7425
1. Make Rootless and Systemd flags part of config.Cgroups. 2. Make all cgroup managers (not just fs2) return error (so it can do more initialization -- added by the following commits). 3. Replace complicated cgroup manager instantiation in factory_linux by a single (and simple) libcontainer/cgroups/manager.New() function. 4. getUnifiedPath is simplified to check that only a single path is supplied (rather than checking that other paths, if supplied, are the same). [v2: can't -> cannot] Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
51 lines
923 B
Go
51 lines
923 B
Go
package fs
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/opencontainers/runc/libcontainer/cgroups"
|
|
"github.com/opencontainers/runc/libcontainer/configs"
|
|
)
|
|
|
|
func BenchmarkGetStats(b *testing.B) {
|
|
if cgroups.IsCgroup2UnifiedMode() {
|
|
b.Skip("cgroup v2 is not supported")
|
|
}
|
|
|
|
// Unset TestMode as we work with real cgroupfs here,
|
|
// and we want OpenFile to perform the fstype check.
|
|
cgroups.TestMode = false
|
|
defer func() {
|
|
cgroups.TestMode = true
|
|
}()
|
|
|
|
cg := &configs.Cgroup{
|
|
Path: "/some/kind/of/a/path/here",
|
|
Resources: &configs.Resources{},
|
|
}
|
|
m, err := NewManager(cg, nil)
|
|
if err != nil {
|
|
b.Fatal(err)
|
|
}
|
|
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)
|
|
}
|
|
}
|