标签: cgroup

如何在 ubuntu 13.04 中使用 cgroup

我正在尝试了解如何cgroup在 Ubuntucgroup上工作,但似乎在 Ubuntu 13.04 中不起作用。我正在使用这个问题的答案如何永久设置给定进程的 cpu 限制。cpulimit 和 nice 不起作用

这些是我所做的:

  1. 安装cgroup

    sudo apt-get install cgroup-bin
    
    Run Code Online (Sandbox Code Playgroud)
  2. 重启

  3. 使cgroup您的用户(过程的所有者):

    sudo cgcreate -a ipeacocks -g cpu:ipeacocks
    
    Run Code Online (Sandbox Code Playgroud)
  4. 运行命令:

    echo 100 > /sys/fs/cgroup/cpu/ipeacocks/cpu.shares
    
    Run Code Online (Sandbox Code Playgroud)
  5. 和命令:

    cgexec -g cpu:ipeacocks stress --cpu 4
    
    Run Code Online (Sandbox Code Playgroud)

和输出:

cgroup change of group failed
Run Code Online (Sandbox Code Playgroud)

为什么?我做错了什么?

cpu cgroup

18
推荐指数
1
解决办法
1万
查看次数

在 Ubuntu 16.04 中安装 cgconfig

我想使用cgroup.

到目前为止,我已经完成了以下工作:

  1. 我安装了一些软件包:

    sudo apt-get install cgroup-bin cgroup-lite cgroup-tools cgroupfs-mount libcgroup1
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后我创建了/etc/cgconfig.conf包含以下内容的文件:

    mount {
      cpuset  = /cgroup/cpuset;
      cpu     = /cgroup/cpu;
      cpuacct = /cgroup/cpuacct;
      memory  = /cgroup/memory;
      devices = /cgroup/devices;
      freezer = /cgroup/freezer;
      net_cls = /cgroup/net_cls;
      ns      = /cgroup/ns;
      blkio   = /cgroup/blkio;
    }
    
    group limitcpu{
      cpu {
        cpu.shares = 400;
      }
    }
    
    group limitmem{
      memory {
        memory.limit_in_bytes = 512m;
      }
    }
    
    group limitio{
      blkio {
        blkio.throttle.read_bps_device = "252:0         2097152";
      }
    }
    
    group browsers{
      cpu {
        cpu.shares = …
    Run Code Online (Sandbox Code Playgroud)

cgroup 16.04

15
推荐指数
2
解决办法
3万
查看次数

Cgroups 错误:cgroup 组更改失败

我正在尝试测试 cgroup,在我设置它之后,我偶然发现了那个错误。这就是我所做的:

  • 创建组grp
  • grp组中创建用户测试

我运行了命令:

sudo cgcreate -t test:grp -a sleax -g memory,cpu:grp
echo '10000000'> /sys/fs/cgroup/memory/grp/memory.limit_in_bytes
Run Code Online (Sandbox Code Playgroud)

然后我去用用户测试试试

test@sleax-PC:~$ cgexec stress -t 20 -c 99 -i 99
cgroup change of group failed
Run Code Online (Sandbox Code Playgroud)

这就是我得到的错误。为什么?我设置-t test:grp所以测试能够写入PID。

cgroup

8
推荐指数
1
解决办法
5398
查看次数

Ubuntu 21.10 升级后:“无法附加 cgroup 程序”操作不允许

将 Ubuntu 21.04 升级到 21.10 后,我遇到了这个问题:Chromium/Firefox 无法启动。错误(在终端中看到)是:

$ firefox
cannot attach cgroup program: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

apparmor cgroup snap 21.10

8
推荐指数
2
解决办法
7325
查看次数

寻找在 Ubuntu 14.04 桌面上配置 cgroups 的一致方法

我正在寻找一种在资源有限的 Ubuntu 14.04 桌面系统上配置 cgroup 的一致方法。

我想做什么:

  • 为特定任务创建一些内存和 CPU 有限的组
  • 重新启动时自动启用这些组
  • 为每个组分配某些命令/程序

我了解 cgroup 配置,以及如何使用 cgexec 为特定组启动进程。问题是下一步。

我已经构建了一个有效的 /etc/cgconfig.conf 文件,我能够使用 cgconfigparser 成功解析和激活该文件以获取配置的 cgroup。然而,这是据我所知。

  • 我没有找到在系统启动时正确读取和解析 /etc/cgconfig.conf 的服务。当前的 cgroup 软件包似乎不包含这样的服务。
  • 据我了解 /etc/cgconfig.conf 伴随着一个 /etc/cgrules.conf 文件,它描述了默认情况下如何在某个组中启动进程。我无法识别解析它的服务或机制。如果没有此功能,我需要使用 cgexec 启动所有进程以将它们放入 cgroup。

我曾尝试使用 cgmanager,但该服务似乎也没有从 /etc/cgconfig.conf 配置。一般来说,我很难找到有关如何在 Ubuntu 桌面系统上配置和使用 cgroup 的信息。

那么,有人能指出我正确的方向吗?我需要安装什么服务,它遵循什么配置文件?

需要明确的是:我不是在寻找容器。它是在单个专用系统上构建资源处理。

非常感谢 :)

cgroup

7
推荐指数
1
解决办法
2753
查看次数

如何修复“docker:来自守护程序的错误响应:cgroups:找不到 cgroup 安装目的地:未知。” 在“docker run”上?

我安装了 Ubuntu 16.04.6 LTS。

之前我已经从其存储库将 Docker 安装为docker.io包。

昨天我用 LXD 安装了 LXC,我想它们与 Docker 共存存在一些问题。

LXC正常工作:

$ lxc exec ubuntu-test -- su --login
ubuntu-test ~ # 
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试启动 docker 容器时,docker run出现错误:

docker: Error response from daemon: cgroups: cannot find cgroup mount destination: unknown.
Run Code Online (Sandbox Code Playgroud)

如何通过启动 Docker 容器来解决此问题?
如果可能,请建议同时安装 Docker 和 LXC/LXD 的解决方案。


一些调试信息:

$ mount | grep cgroup
tmpfs on /sys/fs/cgroup type tmpfs (rw,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/cpu,cpuacct type …
Run Code Online (Sandbox Code Playgroud)

lxc cgroup docker lxd 16.04

7
推荐指数
1
解决办法
3万
查看次数

cgroup_enable=cpuset cgroup_enable=内存 cgroup_memory=1 swapaccount=1 的目的是什么

我正在尝试使用 Ubuntu 20.04.3 在树莓派集群上设置 kubernetes 集群。在许多可用的在线指南中,其中提到的步骤之一如下:

编辑/boot/firmware/cmdline.txt并添加cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1 swapaccount=1在末尾。

上面提到的步骤没有任何解释。因此,为了检查我当前的配置(不应用上述启动配置),我运行/proc/cgroups它给出了以下输出:

#subsys_name    hierarchy       num_cgroups     enabled
cpuset  8       1       1
cpu     4       43      1
cpuacct 4       43      1
blkio   7       43      1
memory  0       51      0
devices 10      43      1
freezer 3       2       1
net_cls 2       1       1
perf_event      5       1       1
net_prio        2       1       1
pids    6       48      1
rdma    9       1       1
Run Code Online (Sandbox Code Playgroud)

由于需要禁用交换,我检查过它已经被禁用。因此我有以下问题:

  1. 我相信cpuset已启用的输出,因为已启用列的值为 1。我对么?如果是的话,是否需要明确设置cgroup_enable=cpuset
  2. 由于启用下的值为 0,因为memory我相信它未启用。我对么?如果是这样,那么 …

boot raspberrypi cgroup kubernetes 20.04

6
推荐指数
1
解决办法
6640
查看次数

是使用 cgroup v1 或 v2 的“cgroup-tools”

我安装了 ubuntu 21.10。我通过运行确认我正在使用 cgroup v2 mount,这显示cgrup2 on /sys/fs/cgroup type cgroup2.

当我想使用cgcreatefromcgroup-tools创建一个新组时cpu

sudo cgcreate -g cpu:newgroup  # or
sudo cgcreate -g all:newgroup 
Run Code Online (Sandbox Code Playgroud)

它失败并出现错误:

cgcreate: libcgroup initialization failed: Cgroup is not mounted
Run Code Online (Sandbox Code Playgroud)

我有几个问题:

  • 这是因为cgroup-tools适用于 cgroup v1 吗?
  • 我应该使用什么来为 cgroup v2 创建新的 cgroup?
  • 如何使用 cgroup v2 的配置文件创建持久性 cgroup(启动时)?

cgroup

6
推荐指数
1
解决办法
6606
查看次数

为什么在 14.04 重启时没有读取 cgconfig.conf?

我最近将一个版本从 12.04 升级到 14.04,发现我的 cgconfig.conf 文件在启动时不再被读取。

该文件似乎是正确的,因为我可以显式加载它

sudo cgconfigparser -l /etc/cgconfig.conf
Run Code Online (Sandbox Code Playgroud)

但这不会在重新启动时自动发生,这意味着在启动时运行的其他脚本会失败(因为它们依赖 cgexec 和 cgconfig.conf 中定义的组)。

我需要做些什么才能自动使用该文件?(即安装一些包)我必须以某种方式将此文件转换为其他文件吗?

这曾经在升级前正常工作,所以我对可能出现的问题感到困惑。

我认为应该对此负责的“cgroup-lite”包也已安装。

提前致谢。

startup restart cgroup 14.04

5
推荐指数
1
解决办法
3388
查看次数

来自新贵的嵌套非特权 lxc 容器,其所有者可以停止

在运行Ubuntu 14.04.5 LTS的主机中,我有一个名为ci的用户,该用户可以创建一个同样运行Ubuntu 14.04.5 LTS的启动非特权 lxc 容器。用户的 subid 范围为200000-231071。这样一个容器的配置文件是:

# Distribution configuration
lxc.include = /usr/share/lxc/config/ubuntu.common.conf
lxc.include = /usr/share/lxc/config/ubuntu.userns.conf
lxc.arch = x86_64

# Nested
lxc.mount.auto = cgroup
lxc.aa_profile = lxc-container-default-with-nesting

# Container specific configuration
lxc.id_map = u 0 200000 65536
lxc.id_map = u 100000 265536 65536
lxc.id_map = g 0 200000 65536
lxc.id_map = g 100000 265536 65536
lxc.rootfs = /home/ci/.local/share/lxc/ci/rootfs
lxc.utsname = ci

# Network configuration
lxc.network.type = veth
lxc.network.flags = up …
Run Code Online (Sandbox Code Playgroud)

unprivileged lxc cgroup 14.04

5
推荐指数
0
解决办法
545
查看次数

cgmanager 在 ubuntu 18 更新上失败

我刚刚将我的 Ubuntu 16 更新到 18.04.1 LTS,重新启动后它无法启动(完全没有响应)。我试过在安全模式下启动并且工作正常,但我看到 上有一个错误cgmanager,特别是:

Failed to start Cgroup management daemon. See 'systemctl status cgmanager.service' for details.
Run Code Online (Sandbox Code Playgroud)

重启好像不行。当我检查 cgmanager 日志(在新贵时)时,我看到的唯一消息是:

initctl: Method "NotifyCGroupManagerAddress" with signature "s" on interface "com.ubuntu.Upstart0_6" doesn't exist
Run Code Online (Sandbox Code Playgroud)

我不熟悉 upstart 过程,所以我的第一个猜测是 cgmanager 未能使用其余软件包进行更新。在冒险之前,我想征求专家的意见。

boot cgroup 18.04

3
推荐指数
1
解决办法
2800
查看次数

标签 统计

cgroup ×11

14.04 ×2

16.04 ×2

boot ×2

lxc ×2

18.04 ×1

20.04 ×1

21.10 ×1

apparmor ×1

cpu ×1

docker ×1

kubernetes ×1

lxd ×1

raspberrypi ×1

restart ×1

snap ×1

startup ×1

unprivileged ×1