在 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(部分限制需权限)。
网友回复
如何修改别人发给我的微信笔记内容?
fbx、obj、glb三维格式模型如何在浏览器中通过three相互转换格式?
python如何实现基于http隧道加密的正向代理服务?
有没有有专门针对 UI 界面截图进行智能标记(Set-of-Mark, SoM) 的开源库和工具?
如何用python实现Set-of-Mark (SoM) 技术?
python如何截取windows指定应用的窗口截图,不用管窗口是不是在最前面?
linux能不能给rm删除命令增加回收站功能,可恢复被删文件?
bfwsoa如何在命令行中执行控制器动作器方法?
RAG(检索增强生成)和 KG(知识图谱)有啥不同?
KVM硬件是啥?


