博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
027、限制容器对内存的使用(2019-01-22 周二)
阅读量:6358 次
发布时间:2019-06-23

本文共 2390 字,大约阅读时间需要 7 分钟。

参考
 
 
资源限额
 
一个docker host 会运行多个容器,每个容器都需要CPU、内存、IO资源。对于KVM和vmware等虚拟化技术,用户可以控制分配多少CPU、MEM资源给虚拟机。对于容器而言,Docker也提供了类似的机制避免某个容器因占用太多资源而影响其他容器乃至整个host的性能
 
内存限额
 
    与操作系统类似,容器可以使用的内存包括两部分,物理内存和swap。docker通过下面两个参数来控制容器内存的使用量。
 
    -m 或 --memory    设置内存的使用限额,比如  100M  2G
 
    --memory-swap    设置内存+swap的使用限额
 
    以上两个参数默认值为 -1 即不限制
 
    如果只指定了 -m 200M 那么最多可以使用 200M内存 和 200M swap
 
 
docker run -it -m 200M --memory-swap=300M progrium/stress --vm 1 --vm-bytes 280M
 
分配200M 内存 和 300M swap
--vm 1 启动一个内存线程
--vm-bytes 280M 每个线程分配280M内存
progrium/stress 会不停的分配内存,释放内存
 
root@docker-lab:~#
docker run -it -m 200M --memory-swap=300M progrium/stress --vm 1 --vm-bytes 280M
stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: dbug: [1] using backoff sleep of 3000us
stress: dbug: [1] --> hogvm worker 1 [7] forked
stress: dbug: [7] allocating 293601280 bytes ...
stress: dbug: [7] touching bytes in strides of 4096 bytes ...
stress: dbug: [7] freed 293601280 bytes
stress: dbug: [7] allocating 293601280 bytes ...
stress: dbug: [7] touching bytes in strides of 4096 bytes ...
stress: dbug: [7] freed 293601280 bytes
stress: dbug: [7] allocating 293601280 bytes ...
stress: dbug: [7] touching bytes in strides of 4096 bytes ...
stress: dbug: [7] freed 293601280 bytes
 
root@docker-lab:~#
docker run -it -m 200M  progrium/stress --vm 1 --vm-bytes 410M  # 内存不足,自动退出
stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: dbug: [1] using backoff sleep of 3000us
stress: dbug: [1] --> hogvm worker 1 [8] forked
stress: dbug: [8] allocating 429916160 bytes ...
stress: dbug: [8] touching bytes in strides of 4096 bytes ...
stress: FAIL: [1] (416) <-- worker 8 got signal 9
stress: WARN: [1] (418) now reaping child worker processes
stress: FAIL: [1] (422) kill error: No such process
stress: FAIL: [1] (452) failed run completed in 1s
 
 
root@docker-lab:~#
docker run -it -m 200M  progrium/stress --vm 1 --vm-bytes 390M
stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: dbug: [1] using backoff sleep of 3000us
stress: dbug: [1] --> hogvm worker 1 [7] forked
stress: dbug: [7] allocating 408944640 bytes ...
stress: dbug: [7] touching bytes in strides of 4096 bytes ...
stress: dbug: [7] freed 408944640 bytes
stress: dbug: [7] allocating 408944640 bytes ...
stress: dbug: [7] touching bytes in strides of 4096 bytes ...
stress: dbug: [7] freed 408944640 bytes
 
 

 

转载于:https://www.cnblogs.com/www1707/p/10306802.html

你可能感兴趣的文章
linux运维常见英文报错中文翻译(菜鸟必知)
查看>>
[原][osgEarth]添加自由飞行漫游器
查看>>
fastjson如何指定字段不序列化
查看>>
[日常] Go语言圣经--示例: 并发的Echo服务
查看>>
BZOJ1969: [Ahoi2005]LANE 航线规划(LCT)
查看>>
linux内存管理之malloc、vmalloc、kmalloc的区别
查看>>
GreenDao 数据库升级 连接多个DB文件 或者指定不同的model&dao目录
查看>>
M1卡破解(自从学校升级系统之后,还准备在研究下)【转】
查看>>
vue 访问子组件示例 或者子元素
查看>>
linux内核--自旋锁的理解
查看>>
银行卡的三个磁道
查看>>
OpenSSL 提取 pfx 数字证书公钥与私钥
查看>>
Keepalived详解(四):通过vrrp_script实现对集群资源的监控【转】
查看>>
CollapsingToolbarLayoutDemo【可折叠式标题栏,顺便带有CardView卡片式布局】
查看>>
CentOS7.4安装配置mysql5.7 TAR免安装版
查看>>
解决IE二级链接无法打开故障
查看>>
Windows phone应用开发[16]-数据加密
查看>>
SQL Server 迁移数据到MySQL
查看>>
通用数据压缩算法简介
查看>>
The next Industry Standard in IT Monitoring, a python implementation Nagios like tool --- Shinken
查看>>