Systemd Slice 配置与管理

1. /etc/systemd/system/user-.slice 的参数和选项

/etc/systemd/system/user-.slice 文件用于配置每个用户的资源限制。下面是一个示例配置文件,并对每个参数进行中文注释。

示例配置文件与注释

  1. [Slice]
  2. # 设置 CPU 使用配额,每个用户最多使用 75% 的 CPU,相当于最多 60 个线程
  3. CPUQuota=7500%
  4. # 设置 CPU 权重,控制用户进程的 CPU 分配优先级,数值越高优先级越高
  5. CPUWeight=200
  6. # 限制进程只能运行在指定的 CPU 上,范围是 0 到 39
  7. AllowedCPUs=0-39
  8. # 限制用户最多使用 32GB 内存
  9. MemoryLimit=32G
  10. # 设置内存的软限制,如果超过此限制,系统会进行清理
  11. MemoryHigh=16G
  12. # 限制用户使用的最大交换空间
  13. MemorySwapMax=4G
  14. # 设置 IO 操作的优先级,数值越高优先级越高
  15. IOWeight=500
  16. # 限制每个设备的最大读带宽
  17. IOReadBandwidthMax=/dev/sda 100M
  18. # 限制每个设备的最大写带宽
  19. IOWriteBandwidthMax=/dev/sda 50M
  20. # 限制用户最多创建 1000 个任务(进程和线程)
  21. TasksMax=1000
  22. # 控制对设备的访问权限
  23. DeviceAllow=/dev/sda rw
  24. # 设置设备访问策略,可选值为 strict 或 closed
  25. DevicePolicy=closed
  26. # 设置停止进程的最大等待时间
  27. TimeoutStopSec=30s
  28. # 限制进程的最大运行时间
  29. RuntimeMaxSec=1h
  30. # 限制打开的文件描述符数量
  31. LimitNOFILE=1024
  32. # 限制进程的最大数量
  33. LimitNPROC=512
  34. # 限制可以锁定的最大内存量
  35. LimitMEMLOCK=64M

2. 配置和管理 user-.slice

a) 创建或编辑 /etc/systemd/system/user-.slice 配置文件

  1. 创建或编辑 user-.slice 配置文件:
    1. sudo nano /etc/systemd/system/user-.slice
  2. 根据示例配置文件添加或修改参数。例如:
    1. [Slice]
    2. CPUQuota=7500%
    3. MemoryLimit=32G
    4. TasksMax=1000
    5. IOWeight=500
  3. 保存并退出编辑器。

b) 重新加载和启动/重启 Slice

  1. 重新加载 systemd 配置:
    1. sudo systemctl daemon-reload
  2. 启动或重启 user.slice
    1. sudo systemctl start user.slice
    1. sudo systemctl restart user.slice
  3. 如有需要,可以设置开机时自动启动:
    1. sudo systemctl enable user.slice

c) 监控和管理 Slice

使用 systemctl 命令来管理和监控 slice:

  • 查看 slice 状态:
    1. systemctl status user.slice
  • 停止 slice:
    1. sudo systemctl stop user.slice
  • 重启 slice:
    1. sudo systemctl restart user.slice

d) 查看详细的 Slice 信息

要查看特定用户 slice 的详细信息,可以使用:

  1. systemctl show user-1000.slice

发表评论

匿名网友

拖动滑块以完成验证
加载失败