使用场景
对一组服务进行管理,比如限制资源使用、调整启动顺序和依赖关系。
比如,好几个服务都需要限制内存使用,可以每个服务都加个
MemoryLimit=373741824
,也可以将这些服务加入到同一个slice,然后,只需要在slice中配置MemoryLimit=373741824
。
介绍
systemd的slice是一种服务单元,用于将多个相关进程集中管理。这些进程可以是服务单元(service unit)或范围单元(scope unit)。slice并不直接包含进程,而是组建一个层级,并将scope和service放置其中。
systemd管理的切片,形象地讲,都是cgroup下的树状节点。Linux中有4种初始的slice,如root slice(-.slice),system.slice(通常管理的是服务单元以及范围单元),machine.slice(虚拟机和容器都属于本切片),user.slice(用户的登录session则属于本切片,包括所有跟用户有关的进程)。
通过slice,可以针对其管理的进程组添加诸如CPU、内存等系统资源的限制。这样,系统管理员可以更灵活地管理、配置和控制系统资源,确保关键服务得到优先支持,并防止个别服务占用过多资源导致系统崩溃或性能下降。
查看
- 查看systemd的服务单元有哪些类型
% systemctl --type help
Available unit types:
service
mount
swap
socket
target
device
automount
timer
path
slice
scope
- 查看本机的slice服务单元
% systemctl --type slice
UNIT LOAD ACTIVE SUB DESCRIPTION
-.slice loaded active active Root Slice
machine.slice loaded active active Virtual Machine and Container Slice
system-getty.slice loaded active active system-getty.slice
system-modprobe.slice loaded active active system-modprobe.slice
system-systemd\x2dfsck.slice loaded active active system-systemd\x2dfsck.slice
system.slice loaded active active System Slice
user-1000.slice loaded active active User Slice of UID 1000
user.slice loaded active active User and Session Slice
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
8 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
可以看到有8个,主要是-.slice
,machine.slice
,system.slice
,user.slice
。
其他4个的解释如下:
system-getty.slice:这个slice用于管理系统的终端登录进程。getty是一个用于管理终端登录的程序,当用户在终端输入用户名和密码时,getty会启动一个登录会话。system-getty.slice就是用来管理这些getty进程的,确保它们能够正常运行,以便用户能够正常登录系统。
system-modprobe.slice:这个slice负责管理内核模块的加载进程。modprobe是一个用于加载和管理内核模块的程序,当系统需要加载或卸载某个内核模块时,modprobe会负责处理。system-modprobe.slice确保modprobe进程能够正常执行,以支持系统的正常运行。
system-systemd\x2dfsck.slice:这个slice用于管理文件系统的一致性检查进程。fsck是一个用于检查和修复文件系统的工具,当系统启动或文件系统挂载时,如果检测到文件系统存在问题,fsck会被调用进行修复。system-systemd\x2dfsck.slice负责管理系统中的fsck进程,确保文件系统的一致性检查能够正常执行,以维护文件系统的完整性和稳定性。
标签:systemd,slice,system,unit,active,loaded,单元 From: https://www.cnblogs.com/dewan/p/17799747.htmluser-1000.slice的作用是管理系统中的一个特定用户的进程。在这个例子中,它管理的是用户ID为1000的用户的进程。通过user-1000.slice,可以对该用户进程组进行资源限制、优先级调整等操作,以确保系统资源的合理分配和用户的正常使用。