当前位置:

首页 > 系统应用 > 如何检查 Linux 中是否配置了控制组

如何检查 Linux 中是否配置了控制组

介绍 在这个实验中,你将学习如何检查你的 Linux 系统是否配置了控制组(cgroups)。控制组是一个强大的内核特性,用于管理和控制进程的资源使用情况。 你将通过以下操作来实现这一目标:使用 CODE0 列出可用的控制组子系统,检查 CODE1 中的控制组挂载点,以及验证控制组配置文件 CODE

介绍

在这个实验中,你将学习如何检查你的 Linux 系统是否配置了控制组(cgroups)。控制组是一个强大的内核特性,用于管理和控制进程的资源使用情况。

你将通过以下操作来实现这一目标:使用 CODE0 列出可用的控制组子系统,检查 CODE1 中的控制组挂载点,以及验证控制组配置文件 CODE_2。这些步骤将全面概述你系统的控制组设置情况。

使用 cat /proc/cgroups 列出控制组

接下来,我们来学习如何在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

让我们来详细分析一下这个输出:

  • CODE0:控制组子系统的名称(例如,CODE1、CODE2、CODE3)。每个子系统控制一种特定类型的资源。
  • CODE_0:子系统所连接的层次结构的 ID。在这个输出中,所有子系统都连接到层次结构 0,这是较新的 Linux 发行版中的默认统一层次结构。
  • CODE_0:当前在此子系统的层次结构中创建的控制组的数量。
  • CODE_0:表示该子系统在内核中是启用(1)还是禁用(0)。

这个输出向你展示了哪些资源控制功能在你的系统上可用且处于活动状态。了解这些子系统是学习如何使用控制组管理资源的第一步。

点击 Continue 进入下一步。

检查 /sys/fs/cgroup 中的控制组挂载点

在上一步中,你已经了解了可用的控制组(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 进入下一步。

使用 cat /etc/cgconfig.conf 验证控制组配置

在前面的步骤中,你了解了可用的控制组(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 系统上控制组的存在和基本配置。

本文内容来源于网友投稿,如有侵权请联系删除。
作者最新文章
系统应用
相关文章 更多
Windows 10家庭版怎么升级到专业版?步骤与成本说明
Windows 10家庭版怎么升级到专业版?步骤与成本说明

想知道如何将 Windows 10 家庭版升级到专业版?本文详解通过微软商店购买和输入产品密钥两种官方升级方法,说明数据保留情况、成本计算及升级后如何验证 BitLocker 和远程桌面等功能,助您安全获取专业版权限。

win10自动更新突然恢复启用是什么原因
win10自动更新突然恢复启用是什么原因

Windows 10 自动更新突然重新启用怎么办?本文详解暂停35天期限结束、误点继续更新、重启后任务续跑及公司域策略覆盖等常见原因,提供查看更新历史、设置活动时间和正确使用疑难解答的操作指南,帮助用户在支持结束前安全管理系统更新。

Media Creation Tool下载失败或速度慢的解决方法
Media Creation Tool下载失败或速度慢的解决方法

解决 Media Creation Tool 在下载 Windows 镜像时速度慢、中断或报错的问题。本文按操作顺序指导用户检查网络连接、系统权限、磁盘空间及 U 盘状态,确保顺利制作可启动安装介质。

普通用户选Windows 10家庭版还是专业版?适用场景分析
普通用户选Windows 10家庭版还是专业版?适用场景分析

不确定该选Windows 10家庭版还是专业版?本文解析两者在远程连接、磁盘加密和虚拟化等方面的实际差异,帮你避开性能误区,根据真实使用场景做出最具性价比的选择。

win10断电重启后自动继续更新要怎么阻止
win10断电重启后自动继续更新要怎么阻止

Win10断电重启后总是自动继续更新怎么办?别强行关机,先等恢复完成。教你用暂停更新、设置活动时间和按流量计费连接,减少更新对工作的打扰。注意Win10支持已终止,长期不更新有风险。

win10能不能单独关闭功能更新不关闭安全补丁
win10能不能单独关闭功能更新不关闭安全补丁

解析Windows 10功能更新与质量更新的区别。说明个人家庭版无法永久单独关闭功能更新,专业版可通过组策略延迟功能升级。提醒用户关注Win10支持终止时间,避免误用禁用服务导致安全风险。

win10使用移动热点如何禁止win10自动更新下载
win10使用移动热点如何禁止win10自动更新下载

想知道Win10连手机热点时如何避免偷跑流量?只需将热点网络设为“按流量计费的连接”,即可限制Windows Update自动下载非优先更新。本文提供详细界面导览与设置步骤,助你精准控制后台数据消耗。

U盘启动安装Windows11容易失败?正确装机流程是什么
U盘启动安装Windows11容易失败?正确装机流程是什么

详解 Windows 11 安装的三种路径风险,指导如何制作官方安装介质、正确进入启动菜单、安全清理磁盘分区以及装后验证激活状态,帮助用户避免数据丢失和安装失败。

win10怎么只关闭大版本升级保留安全更新推送
win10怎么只关闭大版本升级保留安全更新推送

想只关闭Win10大版本升级但保留安全补丁?本文区分功能更新与质量更新,详解专业版组策略配置方法,并说明家庭版限制及Win10停止支持后的应对建议。

win10笔记本外出联网如何阻止自动下载更新包
win10笔记本外出联网如何阻止自动下载更新包

Win10笔记本外出使用手机热点时,如何防止自动下载更新包消耗流量?本文详解通过设置“按流量计费的连接”和“暂停更新”来精准控制流量,对比传递优化限速效果,并解释为何不应直接禁用Windows Update服务。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)
Windows

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。