限制内存使用量

内存使用量可以使用memory.limit_in_bytes进行限制。这里创建一个名称为GroupA的分组,尝试将内存使用量限制为10MB。可以通过如下命令行实现。


mkdir/cgroup/GroupA

echo 10M>/cgroup/GroupA/memory.limit_in_bytes

echo$$>/cgroup/GroupA/tasks


下面看一下Memory Cgroup限制内存使用量的效果。

1.获取较大的文件

首先,看一下不对内存使用量进行限制时的结果。

限制内存使用量 - 图1

限制内存使用量 - 图2

限制内存使用量 - 图3

从free来看,原本有约600MB的空闲内存减少到约60MB。而cached的值大幅增加,可以看出对wget命令获取的约700MB的文件进行缓存时使用了空闲内存。

下面看一下将内存使用量限制为10MB时的结果。

限制内存使用量 - 图4

限制内存使用量 - 图5

限制内存使用量 - 图6

从free命令中cached的差别可以看出内存使用量限制在约10MB。

2.备份处理

在通过tar命令创建数据库时也可以使用。以Linux内核源代码数据库为例进行说明。

不限制内存使用量时:

限制内存使用量 - 图7

内存使用量限制为10MB时:

限制内存使用量 - 图8

可以发现内存同样限制为10MB。