systemd和cgroup

systemd是一个软件套装,它是很多linux发行版本的init系统。在这些发行版本中,systemd是第一个启动的进程,pid为1。它负责管理linux系统上运行的服务。systemd的出现是为了给在linux系统上的服务能提供一个统一的接口。比如说我们的fedora系统中启动一个服务都是通过systemctl start xxxx.service的指令来调用,就是托systemd的福。

cgroup是systemd软件套装中的一个软件,它允许用户为一组进程创建资源的限制和隔离。(例如在fedora系统上chrome浏览器可以给每一个页面的worker运行时最多只能占多少内存做出限制,这就是托cgroup的福)

在容器化技术比较普遍的今天,cgroup也为容器应用提供服务。例如我们能够给docker的container设定资源占用量,就是托的cgroup的福。

需要注意的是,在k8s安装教程中尤其的指出,容器运行时可能采用与systemd不同的cgroup,而且这会导致在系统资源比较紧张的情况下发生错误。于是我们需要手动指定容器使用systemd的cgroup。(因为在默认情况下,容器例如docker采用的不是systemd的cgroup,而是cgroupfs)

发表评论

邮箱地址不会被公开。 必填项已用*标注