大佬教程收集整理的这篇文章主要介绍了linux – 使用cgroups作为用户设置用户创建的systemd范围的MemoryLimit,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法让非特权用户或root用户允许非特权用户创建系统范围(或systemd管理的其他控制组),以便范围的内存使用受到限制,并且限制可由用户?
或者,为什么这不能达到上述效果:
$systemd-run --scope --user --unit=limit-test.scope bash Running as unit limit-test.scope. $systemctl show --user limit-test.scope |grep Mem MemoryAccounting=no MemoryLimit=18446744073709551615 $systemctl set-property --user limit-test.scope MemoryAccounting=yes $systemctl set-property --user limit-test.scope MemoryLimit=100M $systemctl show --user limit-test.scope |grep Mem MemoryAccounting=yes MemoryLimit=104857600 $python >>> a = [1]*1000000000 # happily eats 7.4G of RAM
我正在使用systemd 215在Debian unstable上测试它.内核是3.18.2并使用所需的支持进行编译,我相信:
$zgrep -E 'CGROUP|MEMCG' /proc/config.gz CONfig_CGROUPS=y # CONfig_CGROUP_DEBUG is not set CONfig_CGROUP_FREEZER=y CONfig_CGROUP_DEVICE=y CONfig_CGROUP_cpuACCT=y CONfig_MEMCG=y CONfig_MEMCG_SWAP=y CONfig_MEMCG_SWAP_ENABLED=y CONfig_MEMCG_KMEM=y # CONfig_CGROUP_HUGETLB is not set CONfig_CGROUP_PERF=y CONfig_CGROUP_SCHED=y CONfig_BLK_CGROUP=y # CONfig_DEBUG_BLK_CGROUP is not set CONfig_NETFILTER_XT_MATCH_CGROUP=m CONfig_NET_CLS_CGROUP=y CONfig_CGROUP_NET_PRIO=y CONfig_CGROUP_NET_CLASSID=y
/etc/systemd.system.conf设置这些参数,但没有别的:
DefaultcpuAccounting=yes DefaultBlockIOAccounting=yes DefaultMemoryAccounting=yes
我真正想要实现的是一种RSS限制,作为一个非特权用户,一个进程(或一组进程),而不限制虚拟内存,即ulimit -v out.
Ref from systemd-devel mailing list:
这是2015年4月,我假设从那以后没有任何改变.
以上是大佬教程为你收集整理的linux – 使用cgroups作为用户设置用户创建的systemd范围的MemoryLimit全部内容,希望文章能够帮你解决linux – 使用cgroups作为用户设置用户创建的systemd范围的MemoryLimit所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。