给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 -gmemory: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

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信