cgroup中内存超限通知机制
来源:互联网 发布:ios10怎么删除软件 编辑:程序博客网 时间:2024/05/02 00:43
1.背景
CloudFoudry会使用warden,warden使用了cgroup,本文描述cgroup中memory子系统的一些机制,所以本文面向Linux容器管理者比较合适。
现在Linux容器的技术比较火,很多云平台都会使用到Linux容器来作为Application的运行环境,例如Cloud Foundry使用的Warden,以及超级热门的Docker。一个App在容器中运行,它的内存是受限的,也就是这个App可以申请的内存上限受到了cgroup的memory子系统的限制,永远无法超过cgroup设定的阈值,这也是为什么要把Linux容器作为app运行环境的一个好处。
可是,当你的App程序在业务量变大的情况下,占用的内存慢慢涨上来,最终触发到cgroup设定的阈值的时候,会发生什么情况呢?
杀!很简单,不过也很暴力。是的,CloudFoundry的默认设置就是当前App内存超过限定时,直接Kill当前App。这对于CF平台来说是简单安全的,但是对App开发者来说略有点粗暴。并且还有一个附带的后果,即当该App有多个实例的时候,其中一个实例因为内存超限被Kill掉后,所有业务请求都到会分发到剩下的App实例上,导致其他App实例的业务量上涨,最终结果可能是连锁的,所有的App实例都被干掉了。
虽然开发者可以选择“自动扩容”这种云平台的高级“Service服务”功能来保证当业务量上升时,App应用的实例数自动增加,从而防止单个App内存上涨超限而被杀掉。不过这个对App开发者的要求略高。
那是不是有其他方式来处理App内存超限后的动作呢?是的cgroup有两个选择,下面会详细分析
- cgroup中内存超限通知机制
- cgroup中内存超限通知机制
- iOS中通知机制
- iOS中通知机制
- hadoop streaming内存超限解决方案
- Cgroup - Linux 内存资源管理
- 使用cgroup限制内存
- cgroup--内存 限制内存测试
- Cgroup之Resource Counter机制
- 使用cgroup限制内存使用
- cgroup实践---使用cgroup限制mongodb进程内存
- linux 驱动程序中异步通知机制
- java中内存机制
- java中内存机制
- Cgroup
- Cgroup
- cgroup
- cgroup
- java 调用ice示例
- iOS 程序开发零散重点知识总结(一)暴走漫画制作笔记二
- Hibernate关系注解
- Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能
- TextView过长显示省略号, TextView文字中间加横线
- cgroup中内存超限通知机制
- 实例学习gcc+gdb+make
- ios AppDelegate设置全局变量
- 某天你还会遇见比我更好的,那么
- 去掉listview中的点击颜色
- 设计模式六大原则(1):单一职责原则
- Nginx配置文件nginx.conf中文详解
- Hash表
- poj 2892Tunnel Warfare