SystemD“任务”和 nproc 值之间有什么不同?
我们看到一个服务崩溃的问题,因为当前任务的数量超过了 TasksMax (512) 的 Systemd 默认值。但是我们已经设置LimitNPROC=infinity
了所以我们很惊讶服务被限制在 512。
我们通过设置解决了问题
TasksMax=infinity
Run Code Online (Sandbox Code Playgroud)
之间有什么不同TasksMax
和LimitNPROC
当你应该使用一个比其他?
LimitNProc=
是 rlimit(也称为 ulimit)。“有关资源限制概念的详细信息,请参阅 setrlimit(2)...请注意,使用这些选项配置的大多数进程资源限制都是针对每个进程的,并且进程可能会分叉以获取一组独立于进程的新资源。原始过程,因此可能逃脱设定的限制。” 这记录在man systemd.exec
. RLIMIT_NPROC
是这句话的例外之一;它限制“真实用户 ID”(UID) 的进程数量。
TasksMax=
被记录在更具体的 中man systemd.resource-control
,作为“依赖 Linux 控制组 (cgroups) 内核概念来组织进程”的选项之一。所有此类限制都适用于为 systemd 服务创建的 cgroup。不能通过简单地分叉一个新进程来逃避 cgroup。
TasksMax=
对我来说更有意义。我不知道你为什么要使用LimitNProc=
.
归档时间: |
|
查看次数: |
1206 次 |
最近记录: |