5.cgroup资源控制

控制组( CGroups)是 Linux 内核的一个特性,主要用来对共享资源进行隔离、限制、审计等。 只有将分配到容器的资源进行控制,才能避免多个容器同时运行时对宿主机系统的资源竞争。每个控制组是一组对资源的限制,支持层级化结构。 控制组技术最早是由 Google 的程序员在 2006 年提出的, Linux 内核自 2.6.24 开始原生 支持,可以提供对容器的内存、 CPU、磁盘 IO 等资源进行限制和计费管理。 最初的设计目标是为不同的应用情况提供统一的接口,从控制单一进程( 比如 nice 工具)到系统级虚拟化 。

具体来看,控制组提供如下功能:

资源限制( resource limiting):可将组设置一定的内存限制。 比如:内存子系统可以 为进程组设定一个内存使用上限,一旦进程组使用的内存达到限额再申请内存,就会 出发 Out of Memory 警告。

优先级(prioritization):通过优先级让一些组优先得到更多的 CPU 等资源。nice

资源审计( accounting):用来统计系统实际上把多少资源用到适合的目的上,可以使 用 cpuacct 子系统记录某个进程组使用的 CPU 时间。

隔离(isolation):为组隔离命名空间,这样使得一个组不会看到另一个组的进程、 网 络连接和文件系统。

控制(control):执行挂起、 恢复和重启动等操作。

猜你喜欢

转载自www.cnblogs.com/leleyao/p/10498766.html