Skip to content
This repository was archived by the owner on Mar 9, 2022. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions cmd/cri-containerd/options/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ type Config struct {
StatsCollectPeriod int `toml:"stats_collect_period"`
// SystemdCgroup enables systemd cgroup support.
SystemdCgroup bool `toml:"systemd_cgroup"`
// OOMScore adjust the cri-containerd's oom score
OOMScore int `toml:"oom_score"`
}

// CRIContainerdOptions contains cri-containerd command line and toml options.
Expand Down Expand Up @@ -143,6 +145,8 @@ func (c *CRIContainerdOptions) AddFlags(fs *pflag.FlagSet) {
false, "Enables systemd cgroup support. By default not enabled.")
fs.BoolVar(&c.PrintDefaultConfig, "default-config",
false, "Print default toml config of cri-containerd and quit.")
fs.IntVar(&c.OOMScore, "oom-score",
-999, "Adjust the cri-containerd's oom score.")
}

// InitFlags must be called after adding all cli options flags are defined and
Expand Down
6 changes: 6 additions & 0 deletions pkg/server/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
"github.com/containerd/containerd/content"
"github.com/containerd/containerd/images"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/sys"
"github.com/cri-o/ocicni/pkg/ocicni"
"github.com/golang/glog"
runcapparmor "github.com/opencontainers/runc/libcontainer/apparmor"
Expand Down Expand Up @@ -121,6 +122,11 @@ func NewCRIContainerdService(config options.Config) (CRIContainerdService, error
return nil, fmt.Errorf("failed to load cgroup for cgroup path %v: %v", config.CgroupPath, err)
}
}
if config.OOMScore != 0 {
if err := sys.SetOOMScore(os.Getpid(), config.OOMScore); err != nil {
return nil, fmt.Errorf("failed to set OOMScore to %v: %v", config.OOMScore, err)
}
}

c := &criContainerdService{
config: config,
Expand Down