给docker一个root权限
docker run -it --name vm2 ubuntu
ip link set down eth0  #  失败

这里写图片描述

docker run -it --name vm2  --privileged ubuntu
ip link set down eth0
ip addr

这里写图片描述

内存限制
docker run --rm -it --name vm4 -m  100M --memory-swap  100M stress --vm 1 --vm-bytes 110M    # 出错所需内存太大,不足以分配
docker run --rm -it --name vm4 -m  100M stress --vm 1 --vm-bytes 200M 
 #  --vm 1  分配一个进程    --vm-bytes  
cpu限制
docker run --rm -it --cpu-shares 512 stress -c 1   # 给进程分配一个cpu
docker run --rm -it --cpu-shares 512 stress -c 4  # 用所有cpu进行测试
docker run --rm -it --cpu-shares 1024 stress -c 4

这里写图片描述

限制写的速率
docker run --rm -it --device-write-bps /dev/sda:10M ubuntu

这里写图片描述

用cgroup作限制

打开一个6.5的虚拟机
下载libcgroup.x86_64

cgroup设置内存设置
/etc/init.d/cgconfig start
cd /cgroup
vim /etc/cgonfig.conf
group x1 {
    memory {
        memory.limit_in_bytes = 20975200;
        memory.memsw.limit_in_bytes = 20975200;
        }
}
cd
/etc/init.d/cgconfig restart
cgexec -g memory:x1 dd if=/dev/zero of=file1 bs=1M counte=300

这里写图片描述

vim /etc/cgonfig.conf
group x1 {
    memory {
        memory.limit_in_bytes = 20975200;
        memory.memsw.limit_in_bytes = 20975200;
        }
}
cd
/etc/init.d/cgconfig restart
cgexec -g memory:x1 dd if=/dev/zero of=file1 bs=1M counte=300

写入失败
这里写图片描述
这里写图片描述
举例:设置两个执行脚本,使一个脚本可以执行,一个不可以
./memapp1 # 需要4096个内存页,而./memapp2 # 需要8192个内存页

vim /etc/cgonfig.conf
group x1 {
    memory {
        memory.limit_in_bytes = 20480000;
        memory.memsw.limit_in_bytes = 20480000;
        }
}

这里写图片描述

useradd wdd
vim /etc/cgrules.conf
wdd:memapp1     memory          x1/
wdd:memapp2     memory          x1/
/etc/init.d/cgrules.conf   start
给memapp* 添加执行权限。
chmod +x memapp* 
mv *  /home/wdd
su -
./memapp1
./memapp2

这里写图片描述

cgroup 限制cpu
vim /etc/cgonfig.conf
group x2 {
    cpu {
        cpu.shares = 100;
        }
}

这里写图片描述

cgroup设置blkio限制
vim /etc/cgonfig.conf
group x3 {
    blkio {
        blkio.throttle.read_bps_device = "252:0 1000000";
        }
}
cgexec -g blkio:x3 dd if=/dev/vda of=/dev/null &
cgroup设置进程
vim /etc/cgonfig.conf
group x4 {
    freezer {
        }
}

这里写图片描述
这里写图片描述
这里写图片描述

echo 13039 > tasks
echo FROZEN > freezer.state

这里写图片描述
恢复:

echo THAWED > freezer.state
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐