我是小白,除了要答案,还想要解决问题的思路
大神说cgroups可以搞定,所以:
cgroups是个命令吗 表示查的文章都看不懂
我是小白,除了要答案,还想要解决问题的思路
大神说cgroups可以搞定,所以:
cgroups是个命令吗 表示查的文章都看不懂
内存是属于进程空间,也就是说只有用户启动进程后才会占用内存,所以不能直接分配2G内存给用户。
题主的问题按我的理解可能是想要限制属于某个用户的进程最大能使用的内存空间。
如果是这样的话,可以通过/etc/security/limits.conf做限制:
echo "user1 hard rss 2097152" >>/etc/security/limits.conf
其中:
user1代表的是user1用户
hard代表做硬性限制
rss代表的是物理内存空间
2097152KB是2G内存空间
当然我不确定题主的问题是否如此,如果是的话,题主可以goole或baidu关于ulimit的文章看一看。
用docker
吧!
这个只能通过改写内核才能给固定用户分配内存。Linux的机制是控制程序,而不是控制用户。如果限制用户的最大使用内存量确实可以通过/etc/security/limits.conf
来控制,但不能做到固定不变。如果是数据库,可以一次申请2GB
的内存,Oracle就是这么干的。
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答804 阅读✓ 已解决
2 回答3.2k 阅读
Linux目前只支持对程序的内存控制,还不支持对用户的资源控制。
分配内存自然也在资源控制的行列,通过Cgroups即可实现。
另外一个更方便的做法是使用Docker,后者还能间接的实现对用户的资源控制。