Docker容器资源管理cgroups功能测试

来源:互联网 发布:淘宝宝贝历史记录恢复 编辑:程序博客网 时间:2024/05/16 09:32

2015-10-25 wcdj


Docker创建的容器通过Linux内核的cgroups功能(2.6.24)实现资源的分配和控制。本文使用docker 1.5版本进行测试。

root@gerryyang:/sys/fs/cgroup# lsblkio/cpu/  cpuacct/cpuset/  devices/  freezer/  hugetlb/  memory/perf_event/  systemd/
例如,我们运行了一个容器,可以制定容器的资源使用情况。


测试:memory.limit_in_bytes

# cd /sys/fs/cgroup/memory/docker/16780# echo “100003840” > memory.limit_in_bytes# docker stats 1678# docker attach 1678

在容器里执行内存分配的测试程序

#include<stdio.h>  #include<malloc.h>  #include <string.h>int main()  {  char *p = NULL;  const int bs = 10 * 1024 * 1024;for (;;) {p = (char *)malloc(bs);  if (p) {  sleep(1);memset(p, 0x1, bs);//printf("Memory allocated at: %x/n", p); } else {  printf("Not enough memory!/n");}}return 0;  }

通过在宿主机执行docker stats命令可以查看某个容器的资源使用情况。


在容器运行后,通过修改容器的memory.limit_in_bytes配置,可以实时的控制容器的内存分配情况,当我们的测试程序的内存使用量超过配置的内存限额后会被系统kill掉。



0 0
原创粉丝点击