在 Linux 中,主要通过 cgroups(控制组) 限制进程的 CPU、内存和网络资源。现代系统用 cgroups v2(推荐),旧系统用 v1。
方法(以 cgroups v2 为例):
创建控制组
sudo mkdir /sys/fs/cgroup/mylimit
限制 CPU(例如最多用 1 个核心的 50%)
echo "50000 100000" | sudo tee /sys/fs/cgroup/mylimit/cpu.max # 格式:quota period(单位微秒),50000/100000 = 0.5 核
限制内存(例如最多 512MB)
echo "536870912" | sudo tee /sys/fs/cgroup/mylimit/memory.max # 单位字节,512MB = 512 * 1024²
限制网络(间接)cgroups 不能直接限速网络,但可通过 tc(流量控制)+ cgroup classid 实现。更简单方式:用 systemd 或容器工具。
把进程加入控制组
echo $PID | sudo tee /sys/fs/cgroup/mylimit/cgroup.procs
更简单的方式:
用 systemd(自动管理 cgroups):
systemd-run --scope -p CPUQuota=50% -p MemoryMax=512M your-command
用容器(如 Podman/Docker):
podman run -m 512m --cpus=0.5 your-image
普通用户可通过 systemd-run 限制自己的进程,无需 root(部分限制需权限)。
网友回复
如何写ai提示词让大模型根据主题生成视频脚本json,然后让Hyperframe渲染出mp4视频?
有哪些字体使用等宽编程代码展示?
如果让演唱会歌迷的上万手机屏幕和闪光灯一起被现场中控控制闪烁?
Midjourney为啥进军医疗领域了?
python如何跟踪足球比赛指定球员全场运动标注打聚光灯合成
如何将linux服务器的文件目录映射到windows电脑磁盘?
Docling 与 MarkItDown 两个库有啥不同?
豆包收费后国产其他ai软件也会跟进收费吗?
JPEG 与 HEIF图片格式区别?
centos7版本太旧无法安装python3.11,如何在docker中运行python3.11?


