Ubuntu 限制服务器用户计算资源

Linux
Author

Shixiang Wang

Published

December 23, 2024

服务器是公共计算资源,在管理自己的服务器时发现学生可能会使用过多资源,从而影响其他人,这不太好。因此,检索了网络上当前在这一块怎么进行配置的情况,我使用的是 Ubuntu,实际测试后发现很多设计cgroup的教程都没起到作用(搞不清为啥),最后在一篇博文找到了合适的配置方式,这里记录下。

首先创建所谓的用户 slice 配置目录:

mkdir -p /etc/systemd/system/user-.slice.d

然后创建文件 /etc/systemd/system/user-.slice.d/50-memory.conf50-memory是自定义的),输入以下内容:

[Slice]
MemoryMax=512G
CPUQuota=10000%
Note

这里根据自己的需求进行配置,CPU是按100%进行设置的,这里10000%就是100线程了。

重载守护进程:

systemctl daemon-reload

可以检查配置的生效,如:

cat /sys/fs/cgroup/user.slice/user-1006.slice/memory.max
cat /sys/fs/cgroup/user.slice/user-1006.slice/cpu.max
cat /etc/systemd/system/user-.slice.d/50-memory.conf

我还用 AI 生成了一段测试代码 test_limit.sh

#!/bin/bash

function cpu_load {
    end=$((SECONDS+60))
    while [ $SECONDS -lt $end ]; do
        : # Do nothing and burn up CPU by going around the loop as fast as possible
    done &
}

for i in {1..180}; do
    cpu_load
done

wait
本站总访问量 次(来源不蒜子按域名记录)