一、写在前面
Linux Cgroup作为开源的技术之一,网上的讲解资料非常多,本文部分内容来源于网络。
二、内存隔离 作为aCloud5.9.0版本新功能之一的内存隔离到底是什么意思呢?我们都知道一台服务器的物理内存主要用于两大部分:aCloud平台自身所需要的内存、虚拟机使用的内存。其中平台自身所需要的内存就是我们所熟悉的aSV(计算虚拟化)、aSAN(存储虚拟化)、aNET(网络虚拟化)这三部分所消耗的内存。举个例子,买一台安卓手机,看配置是8GB运行内存,可用的内存是6GB,少的2GB就是手机系统所消耗的内存。虚拟机使用的内存,顾名思义就是可以分配给虚拟机使用的内存。 说了这么多,回到开始的问题上,什么是内存隔离呢?内存隔离简单的说就是将每一部分所需要使用的内存给隔离,各模块使用的内存互相不影响。没有内存隔离,平台所消耗的内存和虚拟机所需要的内存是可以相互抢占的,当资源紧张,可能导致平台稳定性欠佳或者虚拟机运行性能下降;并且平台自身所需要的内存之间也会有竞争关系,比如计算虚拟化所需要的内存和存储虚拟化所需要的内存发生竞争。引入内存隔离后,平台自身所需内存和虚拟机使用内存进行隔离;计算、存储、网络虚拟化之间所需要的内存也进行隔离。单个模块的使用情况不会影响其他模块的运行状态。
三、实现原理 内存隔离通过Linux的Cgroup实现的, Linux CGroup全称Linux Control Group, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等)。主要功能: 1、限制资源使用,比如内存使用2、上限以及文件系统的缓存限制。 3、优先级控制,CPU利用和磁盘IO吞吐。 4、一些审计或一些统计,主要目的是为了计费。 5、挂起进程,恢复执行进程。 |