linux root账户下怎么分配2G内存给用户user1

clipboard.png
我是小白,除了要答案,还想要解决问题的思路

大神说cgroups可以搞定,所以:
cgroups是个命令吗 表示查的文章都看不懂

阅读 4.9k
3 个回答

Linux目前只支持对程序的内存控制,还不支持对用户的资源控制。
分配内存自然也在资源控制的行列,通过Cgroups即可实现。
另外一个更方便的做法是使用Docker,后者还能间接的实现对用户的资源控制。

内存是属于进程空间,也就是说只有用户启动进程后才会占用内存,所以不能直接分配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就是这么干的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题