CGroup原理篇V1十二Memory子系统

Posted 高桐@BILL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CGroup原理篇V1十二Memory子系统相关的知识,希望对你有一定的参考价值。

写在前面

前面简单介绍了memory controller,以及memory controller的发展史。也梳理了memory子系统的配置参数。下面来继续了解memory子系统的设计原理。

一、内存控制原理

内存是一种独特的资源,它的数量有限。如果一个任务请求很多CPU资源,线程可能会处理的很慢,也许需要几个小时,几天,几个月甚至几年。但是对于内存来说,相同的物理内存需要被重用来完成任务。

内存控制器被分成几个阶段实现,如下:

  1. 内存控制器
  2. mlock(2)控制器
  3. 内核态、用户态内存统计和slb控制
  4. 用户态映射长度控制器

内存控制器是第一个开发的控制器。

1.1 设计

page_counter的核心设计就是计数器。一个page_counter用于追踪当前内存使用量,以及

1.2 统计

    +--------------------+
     |  mem_cgroup        |
     |  (page_counter)    |
     +--------------------+
      /            ^      \\
     /             |       \\
+---------------+  |        +---------------+
| mm_struct     |  |....    | mm_struct     |
|               |  |        |               |
+---------------+  |        +---------------+
                   |
                   &

以上是关于CGroup原理篇V1十二Memory子系统的主要内容,如果未能解决你的问题,请参考以下文章

CGroup原理篇V1七CPUSET子系统

CGroup原理篇V1十四NET_PRIO子系统

CGroup原理篇V1十HugeTLB子系统

CGroup原理篇V1五BLKIO子系统

cgroup 原理分析

CGroup原理篇V11.2 CGroup的用法