淘宝主站Cgroup资源控制

目录

项目背景:主站的现状

选型的过程

Cgroup/LinuxContainer介绍

 定制和开发 

存在的问题和对策


项目背景


主站:

  • 跑在xen虚拟机上的Java应用 
  • 处理业务逻辑,本地无重要存储,无状态。 
  • 一台物理机部署3台虚拟机 
  • 双路Xeon,48GB内存 
  • 多数应用是非交易相关的 
  • 有1/3虚拟机峰值Load小于0.5
  • 基本无磁盘IO,主要资源需求集中于cpu和内存 
  • 机器数量非常多

我们需要什么

  • 一台物理机跑更多虚拟机 
  • 更好的组合应用,做到集群利用率均衡 
  • 消耗资源多的和少的部署在一起 
  • 核心应用和非核心部署在一起 
  • 如果某台虚拟机流量上升需要更多资源, 给它分配的内存和cpu也增加,反之亦然。 
  • 不增加监控、运维成本

OS层次上的虚拟化

  • Operating system-level virtualization 
  • 各种称呼, “containers”, “jails”, 增强的chroot
  • Container是安全容器与资源容器的组合
  • 安全容器:chroot, UID/PID/IPC/Network Namespace 
  • 资源容器:Control Cgroup(Cgroup) 

实现 

  • Linux ▪ OpenVZ, Linux-VServer, LinuXContainer(LXC) 

Solaris Zones

FreeBSD Jails

Cgroup

  •  LXC = Namespace + Cgroup 
  • 基于进程组的资源管理 
  • 基础框架+ 子控制器 

使用Cgroup的分组机制,对一组进程就某种系统资源实现资 源管理。

  • cpuset子控制器 

为进程组分配一组允许使用的CPU和内存结点 

  • memcg子控制器 

限制进程组允许使用的物理内存 

只限制匿名页和Page Cache,不包括内核自己使用的内存 

内存紧张时使用与全局回收同样的算法在组内回收 

  • Blkio子控制器

限制进程组的磁盘IO带宽 

实际控制的是磁盘为各进程组服务的时间片数量,和进程调 度器cfs针对cpu的分时服务原理相同

实际使用的方案

虚拟化方案比较

Contains的优势和劣势

优点 

  • 虚拟化开销小,一台物理机跑很多“小”虚拟机 
  • 通过Cgroup增减CPU/内存非常方便,调整速度很快 
  • 和本地环境相同的速度

缺点 

  • 不能热迁移-----调度流量,而不是调度机器 
  • 不能模拟不同体系结构、装不同os------不需要
  • 安全隔离差-------内部集群,由运维操作 
  • ForkBomb、优先级反转、Cgroup实现缺陷
  • 见招拆招 ▪ Memcg不能控制buffer和内核内存 
  • Proc下的多数文件不认识Container,top/sar/free/iostat 都用不了
  • 自己按需求修改内核

性能监控

  • /proc没有“虚拟化” 
  • 为每个Container计算Load和CPU利用率 

社区已有部分Patch,但没被接受 

Upstream内核中为了提高SMP伸缩性,计算Load变 得非常复杂—而且有Bug,幸好我们目前不需要 

如何表示与自己共享CPU的其他Container占用的 CPU时间?借用半虚拟化中的steal time概念 

  • 为每个Container维护/proc/meminfo 

社区已有部分Patch,但仍然不被接受 

Buffer列只能显示零 

内存总量即为Cgroup允许的该容器内存上限

弹性内存分配

  •  Cgroup可以动态调整内存上限,但Hotspot 的GC堆大小是启动时设定的
  • 基本想法:在内存紧张时,“摘掉”GC堆 中垃圾对象所占的物理内存

内存紧张可能由于全局内存缺乏,也可能由于 cgroup组内内存不足 

仍然不能让GC堆扩大,但可以一开始就设个比 较大的值(overcommit),在资源紧张时让其缩小 

对GC堆上限(-Xmx)和memcg上限(hard limit)这 两个参数不再敏感

  • 重新思考最基础的设计 
  • Hotspot 的GC堆大小(-Xmx)和memcgroup的上 限(hard limit)如何取值?堆内和堆外内存应该 给多少?
  • 内存满了会发生什么? 

匿名页被交换到磁盘上

Page cache页直接丢弃,脏页丢弃前先回写

部署大量Java应用时内存主要是GC堆的匿名页

垃圾所占匿名页从其失去最后一个引用之时起到下 次GC之时止不会被访问,被交换出去的概率相对更 大 

把垃圾交换到磁盘上是一种浪费

 

很多细节

  • 有许多Container,该回收谁的内存? 

Shares: Container的权重,我们在这里使用其允许 使用的最大内存总量做为权重

Pages: Container实际使用的内存量  回收倾向= Shares / Page,越小越容易被选中 

  • 希望的行为 

Container活跃时得到允许范围内尽可能多内存 

Container的工作集缩小(不活跃)时剥夺它的内存

引入内存活跃程度百分比α,通过定期扫描页得到 

引入不活跃内存惩罚系数idle_tax∈[1, +∞) 

回收倾向= Shares / Pages * (α + idle_tax * (1 – α) ) 

  • 算法来自Vmware ESX Server

遗留问题

  • 内存还剩多少时触发? 

Full GC时Young Gen中活对象先整体提升,所以内存使用量 可能出现先升后降的现象 

Full GC用时远长于一次kswapd活动,内存用量在Full GC期间 可能继续上涨至direct reclaim 

必须考虑和Page cache用量的平衡

  • 目前只支持ParallelGC collector,不支持CMS 
  • numaaware 

目前实现把每个numa结点视为单独的机器计算

然而ParallelGC collector不是numa-aware的,被某个内存紧 张的结点挑中的Container回收到的内存未必在这个结点上 

  • 内存压力有可能来自于应用内存持续泄露,此时oom比 触发GC来回收内存更好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qq邮箱html个签模板,qq邮箱个性签名模板

qq邮箱个性签名模板http://www.qqzf.cn/lizhi68465/1、踮起脚尖,我们就能离幸福更近一点吗?2、不是放不下,只是心里觉得遗憾,曾经付出了那么多的感情,到最后说没就没了。3、见不到你的時候,心里有好多话想和…

ApacheCN 数据科学/人工智能/机器学习知识树 2019.2

【主页】 apachecn.org【Github】ApacheCN暂时下线: 社区暂时下线: cwiki 知识库自媒体平台 微博:ApacheCN知乎:ApacheCNCSDN简书OSChina博客园我们不是 Apache 的官方组织/机构/团体,只是 Apache 技术栈(以及 AI)的爱…

[Leedcode][JAVA][第102题][二叉树的层序遍历][递归][迭代][BFS]

【问题描述】[第102题][二叉树的层序遍历][中等] 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例: 二叉树:[3,9,20,null,null,15,7],3/ \9 20/ \15 7 返…

java学习(178):终篇?静态代理?动态代理?

总体设计 包com.xzit.aop DynlnvokeProducerProxy 包com.xzit.db db 包com.xzit.entity ClientDepartmentEmployeeGoodsProducer 包com.xzit.interfaces DepartmentDaoImpEmployeeDaoImpIGoodsIObject 包com.xzit.proxy TeatDynProxyTestStaticProxy 咱直接上代码,…

经济学与计算机学收入,考研心得,计算机专业跨考经济学复习经验谈

中国中国人民大学的经济学科以其治学严谨而久负盛名。自2006年至今,经济学科的研究生入学考试初试命题由经济学院命题组统一命题,即全校的经济类(分布于经济学院、商学院、公共管理学院、国际关系学院、劳动人事学院等院系)研究生入学考试的“经济学综合…

PAT-Mars number

1100. Mars Numbers (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue People on Mars count their numbers with base 13: Zero on Earth is called "tret" on Mars. The numbers 1 to 12 on Earch is called…

[bzoj1011] [HNOI2008]遥远的行星

Description 直线上N颗行星&#xff0c;Xi处有行星i,行星J受到行星I的作用力&#xff0c;当且仅当i<AJ.此时J受到作用力的大小为 Fi->jMi*Mj/(j-i) 其中A为很小的常量&#xff0c;故直观上说每颗行星都只受到距离遥远的行星的作用。请计算每颗行星的受力 &#xff0c;只要…

[Leedcode][JAVA][第94/144/145题][前中后序遍历][递归][迭代][二叉树]

【问题描述】[] 前序遍历 先输出当前结点的数据&#xff0c;再依次遍历输出左结点和右结点 中序遍历 先遍历输出左结点&#xff0c;再输出当前结点的数据&#xff0c;再遍历输出右结点 后续遍历 先遍历输出左结点&#xff0c;再遍历输出右结点&#xff0c;最后输出当前结点的数…

sqlserver:(2):window下SQL server数据库数据源的配置

1首先打开控制面板 2选择64位数据源 3添加 4选择sql server 做好配置&#xff0c;下一步 下一步 下一步 测试

聚类算法:K-Means

1.K-Means定义&#xff1a; K-Means是一种无监督的基于距离的聚类算法&#xff0c;简单来说&#xff0c;就是将无标签的样本划分为k个簇&#xff08;or类&#xff09;。它以样本间的距离作为相似性的度量指标&#xff0c;常用的距离有曼哈顿距离、欧几里得距离和闵可夫斯基距离…

html:(1) 登录界面

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><!-- content属性值 :width:可视区域的宽度&#xff0c;值可为数字或关键词device-widthheight:同widthintial-scale:页面首次被显示是可视区域的缩放级别&#x…

[Leedcode][JAVA][第5题][最长回文子串][数组][动态规划]

【问题描述】[第5题][最长回文子串][中等] 给定一个字符串 s&#xff0c;找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1&#xff1a;输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。【解答思路】 1. 中心扩展法…

一流大学计算机专业,计算机专业一流大学太难考,不妨退而求其次,看看这5所大学...

原标题&#xff1a;计算机专业一流大学太难考&#xff0c;不妨退而求其次&#xff0c;看看这5所大学因为就业率高、薪酬待遇好&#xff0c;又是前沿科技&#xff0c;所以计算机专业近一二十年来一直都很热门&#xff0c;开设计算机专业的院校也如雨后春笋一般冒了出来&#xff…

医疗:ICU(10)

国内护理高等教育、护理模式相对 落后&#xff1a;护士的主要学历仍然以中等 教育为主。 流失率高&#xff1a;中国至今不能形成护理 人员分级上岗的工作模式&#xff0c;护理学 大专生、本科生、硕士生所作的工 作和中专生完全一样。中国护士每 年以20%的比率流失&#xff0c…

[Leedcode][JAVA][第560题][和为K的子数组][Hashmap][数组]

【问题描述】[第560题][和为K的子数组][中等] 给定一个整数数组和一个整数 k&#xff0c;你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums [1,1,1], k 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 说明 :数组的长度为 [1, 20,000]。 数组中元素的范围…

html表格复制最后一行字,为什么Word中的表格输入文字最后一行文字会自动跳到下一页...

为什么Word中的表格输入文字最后一行文字会自动跳到下一页以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;为什么Word中的表格输入文字最后一行文字会自动跳到下一页, 在WPS文字中的表格中打…

购物车的基本流程

一、购物车的需求描述和基本流程1、需求描述1、 用户可以在登录状态下将商品添加到购物车 2、 用户可以在未登录状态下将商品添加到购物车 3、 用户可以使用购物车一起结算下单 4、 用户可以查询自己的购物车 5、 用户可以在购物车中可以修改购买商品的数量。 6、 用户可以在购…

医疗:ICU(9)

ICU:重症加强护理病房 把危重病人集中起来&#xff0c;在人力、物力和技术上给予最佳保障&#xff0c;以期 得到良好的救治效果&#xff1b;集中各有关专业的知识和技术&#xff0c;先进的监测 和治疗设备&#xff0c;对重症病例的生理功能进行严密监测和及时有效治疗 的专门单…

canvas填充规则

canvas填充规则 const canvas document.getElementById(canvas); const ctx canvas.getContext(2d);ctx.beginPath(); ctx.fillStylegreen ctx.arc(50, 50, 30, 0, Math.PI * 2, true); ctx.arc(50, 50, 20, 0, Math.PI * 2, true); ctx.arc(50, 50, 15, 0, Math.PI * 2, tr…

1.web技术的前世今生

目录 1web Web服务器 Web页面 Web的作用 所谓Web 2web技术 分类主流 Web技术 工作原理 Web服务器 •1990年&#xff0c;第一个Web服务器开始 运行 •网站服务器 •站点服务器 •本质上是一个软件系统 •安装了web服务器软件的计算机 为什么没有流传 •操作太复杂…