1. /etc/systemd/system/user-.slice
的参数和选项
/etc/systemd/system/user-.slice
文件用于配置每个用户的资源限制。下面是一个示例配置文件,并对每个参数进行中文注释。
示例配置文件与注释
[Slice]
# 设置 CPU 使用配额,每个用户最多使用 75% 的 CPU,相当于最多 60 个线程
CPUQuota=7500%
# 设置 CPU 权重,控制用户进程的 CPU 分配优先级,数值越高优先级越高
CPUWeight=200
# 限制进程只能运行在指定的 CPU 上,范围是 0 到 39
AllowedCPUs=0-39
# 限制用户最多使用 32GB 内存
MemoryLimit=32G
# 设置内存的软限制,如果超过此限制,系统会进行清理
MemoryHigh=16G
# 限制用户使用的最大交换空间
MemorySwapMax=4G
# 设置 IO 操作的优先级,数值越高优先级越高
IOWeight=500
# 限制每个设备的最大读带宽
IOReadBandwidthMax=/dev/sda 100M
# 限制每个设备的最大写带宽
IOWriteBandwidthMax=/dev/sda 50M
# 限制用户最多创建 1000 个任务(进程和线程)
TasksMax=1000
# 控制对设备的访问权限
DeviceAllow=/dev/sda rw
# 设置设备访问策略,可选值为 strict 或 closed
DevicePolicy=closed
# 设置停止进程的最大等待时间
TimeoutStopSec=30s
# 限制进程的最大运行时间
RuntimeMaxSec=1h
# 限制打开的文件描述符数量
LimitNOFILE=1024
# 限制进程的最大数量
LimitNPROC=512
# 限制可以锁定的最大内存量
LimitMEMLOCK=64M
2. 配置和管理 user-.slice
a) 创建或编辑 /etc/systemd/system/user-.slice
配置文件
- 创建或编辑
user-.slice
配置文件:sudo nano /etc/systemd/system/user-.slice
- 根据示例配置文件添加或修改参数。例如:
[Slice] CPUQuota=7500% MemoryLimit=32G TasksMax=1000 IOWeight=500
- 保存并退出编辑器。
b) 重新加载和启动/重启 Slice
- 重新加载
systemd
配置:sudo systemctl daemon-reload
- 启动或重启
user.slice
:sudo systemctl start user.slice
sudo systemctl restart user.slice
- 如有需要,可以设置开机时自动启动:
sudo systemctl enable user.slice
c) 监控和管理 Slice
使用 systemctl
命令来管理和监控 slice:
- 查看 slice 状态:
systemctl status user.slice
- 停止 slice:
sudo systemctl stop user.slice
- 重启 slice:
sudo systemctl restart user.slice
d) 查看详细的 Slice 信息
要查看特定用户 slice 的详细信息,可以使用:
systemctl show user-1000.slice