×

浅谈aCloud5.9.0版本新功能之“内存隔离”实现原理-----Linux CGROUP
  

不懂就问 203

一、写在前面
Linux Cgroup作为开源的技术之一,网上的讲解资料非常多,本文部分内容来源于网络。

二、内存隔离
作为aCloud5.9.0版本新功能之一的内存隔离到底是什么意思呢?我们都知道一台服务器的物理内存主要用于两大部分:aCloud平台自身所需要的内存、虚拟机使用的内存。其中平台自身所需要的内存就是我们所熟悉的aSV(计算虚拟化)、aSAN(存储虚拟化)、aNET(网络虚拟化)这三部分所消耗的内存。举个例子,买一台安卓手机,看配置是8GB运行内存,可用的内存是6GB,少的2GB就是手机系统所消耗的内存。虚拟机使用的内存,顾名思义就是可以分配给虚拟机使用的内存。
说了这么多,回到开始的问题上,什么是内存隔离呢?内存隔离简单的说就是将每一部分所需要使用的内存给隔离,各模块使用的内存互相不影响。没有内存隔离,平台所消耗的内存和虚拟机所需要的内存是可以相互抢占的,当资源紧张,可能导致平台稳定性欠佳或者虚拟机运行性能下降;并且平台自身所需要的内存之间也会有竞争关系,比如计算虚拟化所需要的内存和存储虚拟化所需要的内存发生竞争。引入内存隔离后,平台自身所需内存和虚拟机使用内存进行隔离;计算、存储、网络虚拟化之间所需要的内存也进行隔离。单个模块的使用情况不会影响其他模块的运行状态。
326635db5a8b3e2085.png

三、实现原理
内存隔离通过Linux的Cgroup实现的, Linux CGroup全称Linux Control Group, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等)。主要功能:
1、限制资源使用,比如内存使用2、上限以及文件系统的缓存限制。
3、优先级控制,CPU利用和磁盘IO吞吐。
4、一些审计或一些统计,主要目的是为了计费。
5、挂起进程,恢复执行进程。

给楼主打赏,鼓励TA抓紧创作

打赏
暂无人打赏

sangfor_闪电回_小六 发表于 2019-10-28 15:15
  
感谢楼主分享,这样对新版本功能理解就更方便了,为楼主点赞
QI 发表于 2019-10-28 19:14
  
原来是这样,学到了吖