发布于2026-08-18 阅读(0)
扫一扫,手机访问
在这个实验中,你将学习如何检查你的 Linux 系统是否配置了控制组(cgroups)。控制组是一个强大的内核特性,用于管理和控制进程的资源使用情况。
你将通过以下操作来实现这一目标:使用 CODE0 列出可用的控制组子系统,检查 CODE1 中的控制组挂载点,以及验证控制组配置文件 CODE_2。这些步骤将全面概述你系统的控制组设置情况。
接下来,我们来学习如何在Linux系统中列出可用的控制组(cgroup)子系统。控制组(control groups)是Linux内核的一项特性,它能让你把进程组织成层次化的组,从而实现对进程资源使用情况的控制,比如CPU、内存、磁盘I/O、网络等方面。
你可以将控制组看作是一种为特定应用程序或用户设置资源限制或分配资源的方式。这对于有效管理系统资源至关重要,特别是在容器或云计算等环境中。
CODE0 文件系统是一个虚拟文件系统,它提供有关进程和其他系统信息。CODE1 文件包含了你的内核所支持的控制组子系统的详细信息。
要查看可用的控制组子系统,你将使用 CODE0 命令。CODE1 命令是一个基本的 Linux 实用工具,用于显示文件的内容。
如果终端尚未打开,请打开它。你可以通过点击桌面左侧的 Xfce Terminal 图标来打开终端。
现在,在终端中输入以下命令并按回车键:
cat /proc/cgroups
你应该会看到类似以下的输出:
#subsys_name hierarchy num_cgroups enabled
cpuset 0 1 1
cpu 0 1 1
cpuacct 0 1 1
blkio 0 1 1
memory 0 1 1
devices 0 1 1
freezer 0 1 1
net_cls 0 1 1
perf_event 0 1 1
net_prio 0 1 1
hugetlb 0 1 1
pids 0 1 1
rdma 0 1 1
让我们来详细分析一下这个输出:
这个输出向你展示了哪些资源控制功能在你的系统上可用且处于活动状态。了解这些子系统是学习如何使用控制组管理资源的第一步。
点击 Continue 进入下一步。
在上一步中,你已经了解了可用的控制组(cgroup)子系统。现在,让我们来探究这些控制组在文件系统中的挂载位置。在 Linux 系统中,控制组通常通过虚拟文件系统来呈现,一般挂载在 CODE_0 目录下。
CODE0 文件系统是另一个虚拟文件系统,它为内核数据结构提供了一个接口,常用于配置和监控硬件以及内核特性。CODE1 目录是控制组文件系统的标准挂载点。
为了查看该目录的内容,并了解控制组的层次结构是如何组织的,你将使用 CODE0 命令。CODE1 命令用于列出目录的内容。
如果终端尚未打开,请打开它。
在终端中输入以下命令并按下回车键:
ls /sys/fs/cgroup
你应该会看到类似以下的输出:
cgroup.controllers cgroup.max.depth cgroup.max.descendants cgroup.stat cgroup.subtree_control cgroup.threads cpu cpu.stat cpu.pressure cpuset cpuset.cpus cpuset.mems cpuset.stat io io.stat io.pressure memory memory.stat memory.pressure memory.swap.max memory.high memory.low memory.min memory.swap.current memory.current memory.events memory.events.local pids pids.current pids.max systemd user.slice
这个输出展示了 CODE0 目录下的目录和文件。在使用统一控制组层次结构(cgroup v2)的系统中,你会看到像 CODE1、CODE2 这样的文件,以及与挂载的控制器相对应的目录(如 CODE3、CODE4、CODE5、CODE_6)。
这些目录(如 CODE0、CODE1 等)中的每一个都代表一个控制组控制器。在这些目录内部,你会找到一些文件,这些文件允许你配置和监控该控制组内进程的资源限制。
例如,如果你进入 CODE_0 目录,你会找到与 CPU 资源控制相关的文件。
让我们使用 CODE0 命令快速查看 CODE1 目录内部的情况:
ls /sys/fs/cgroup/cpu
你可能会看到如下输出:
cgroup.controllers cgroup.events cgroup.freeze cgroup.max.depth cgroup.max.descendants cgroup.stat cgroup.subtree_control cgroup.threads cpu.max cpu.stat cpu.weight cpu.pressure
这些文件(如 CODE0、CODE1)用于为控制组设置 CPU 限制和优先级。
理解 CODE_0 的结构是使用控制组的关键,因为你将直接在这里与它们进行交互。
点击 Continue 进入下一步。
在前面的步骤中,你了解了可用的控制组(cgroup)子系统以及它们在文件系统中的挂载位置。现在,让我们来看看一个常见的控制组配置文件:CODE_0。
虽然可以通过 CODE0 文件系统直接管理控制组,但像 CODE1 这样的配置文件通常用于在系统启动时定义控制组的层次结构和初始设置。该文件是 CODE_2 软件包的一部分,该软件包提供了管理控制组的实用工具。
CODE0 服务(如果已安装并启用)会读取 CODE1 文件,以便在系统启动时设置控制组的层次结构并挂载控制器。查看这个文件可以让你了解系统上控制组的配置方式。
你将再次使用 CODE_0 命令来显示这个配置文件的内容。
如果终端尚未打开,请打开它。
在终端中输入以下命令并按下回车键:
cat /etc/cgconfig.conf
你应该会看到类似以下的输出(具体内容可能因系统配置而异):
#
## A sample configuration file for cgconfig.
#
## The file contains two sections:
## mount: defines the hierarchy and where to mount it.
## group: defines the cgroup and its parameters.
#
## Example:
#
#mount {
## cpuset = /cgroup/cpuset;
## cpu = /cgroup/cpu;
## cpuacct = /cgroup/cpuacct;
## memory = /cgroup/memory;
## devices = /cgroup/devices;
## freezer = /cgroup/freezer;
## net_cls = /cgroup/net_cls;
## blkio = /cgroup/blkio;
#}
#
#group staff {
## perm {
## task {
## uid = staff;
## gid = staff;
## }
## admin {
## uid = staff;
## gid = staff;
## }
## }
## cpu {
## cpu.shares = 1000;
## }
## memory {
## memory.limit_in_bytes = 256M;
## }
#}
#
#group / {
## cpu {
## cpu.shares = 1024;
## }
#}
在这个示例输出中,你可以看到带有注释(CODE0)的部分,这些部分展示了如何为不同的控制器定义挂载点,以及如何创建具有特定资源限制(例如 CODE1、CODE2)的控制组(如 CODE3)。
如果该文件为空或仅包含注释,这意味着控制组的层次结构和初始组不是通过这个特定文件进行配置的。在现代系统中,CODE0 通常使用挂载在 CODE1 的统一层次结构来处理控制组的管理。
即使这个文件在你的系统上没有被积极用于配置,了解它的存在和用途对于理解如何管理控制组也是很重要的。
你现在已经探索了可用的控制组子系统、它们在文件系统中的挂载点以及一个常见的配置文件。这让你对 Linux 系统上控制组的结构和潜在配置有了基本的了解。
点击 Continue 完成本次实验。
在本次实验里,你掌握了检查Linux系统中控制组(cgroup)配置情况的方法。你先是利用CODE0命令,列出了内核所支持的可用控制组子系统,同时对输出列,像CODE1、CODE2、CODE3以及CODE_4等进行了理解。这一步骤能让你清楚知晓哪些资源控制机制处于激活状态。
接下来,你通过检查 CODE0 目录来验证控制组的挂载点,该目录是控制组层次结构的标准挂载位置。最后,你查看了 CODE1 文件,以确定是否定义了任何持久的控制组配置,不过这个文件可能在所有系统上都不存在或未被使用,特别是那些依靠 CODE_2 进行控制组管理的系统。这些步骤共同展示了如何确定 Linux 系统上控制组的存在和基本配置。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9