我正在尝试使用cgroup
(Control Group) 来限制 virtualbox 的内存使用,但它似乎不起作用。
我的机器是:
$ uname -a
Linux fc.bgi 2.6.40-4.fc15.i686 #1 SMP Fri Jul 29 18:54:39 UTC 2011 i686 i686 i386 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
我试图让它像这样工作:
在内存层次结构下创建新的 cgroup:
$ cgcreate -g memory:vbox
Run Code Online (Sandbox Code Playgroud)为 vbox 设置 memory.limit_in_bytes:
$ cgset -r memory.limit_in_bytes=512M vbox
Run Code Online (Sandbox Code Playgroud)将运行 pid 的 vbox 分组到 vbox:
$ cgclassify -g memory:vbox 20015
Run Code Online (Sandbox Code Playgroud)有人可以解释为什么这不起作用吗?
您可以使用 /etc/security/limits.conf\ 在您放置的此文件中限制内存使用:
\n\ndomain type item value
其中domain
是@groupname
、type
是hard
或soft
是hard
在任何情况下都不能超过的限制。
item
项目字段指定受限制的项目类型。示例\n \xe2\x80\x8b\n包括 core(核心文件的大小)、data(程序\xe2\x80\x99s 数据区的大小)、fsize(用户创建的文件的大小)、 nofile(打开数据文件的数量)、rss(驻留集大小)、stack(堆栈大小)、cpu(单个进程的 CPU 时间,以分钟为单位)、nproc(并发进程数)、maxlogins (同时登录的数量)和优先级(进程优先级)。数据、RSS 和堆栈项都与程序消耗的内存相关。这些和其他数据容量度量均以千字节为单位。
与您选择的字段value
相关item
,例如,如果您cpu
在该item
字段中选择并输入2
then value
,则万一domain
(您的 VirtualBox 组)占用的 CPU 时间超过了2
cpu 时间,它将被终止。
您也可以使用ulimit
,但它仅限于 bash shell。
希望这可以帮助您实现目标,尽管它不是按照您要求的方法完成的。
\n 归档时间: |
|
查看次数: |
3302 次 |
最近记录: |