From 780a5e80311f5f3d188666733dcf276abc8e7e81 Mon Sep 17 00:00:00 2001 From: vegbir Date: Wed, 14 Jun 2023 17:14:16 +0800 Subject: [PATCH 05/13] rubik: move fssr design document to design dir Signed-off-by: vegbir --- docs/{ => design}/fssr.md | 18 ++++++++++++++---- .../fssr/flowchart.png} | Bin .../fssr/sequence_diagram.png} | Bin 3 files changed, 14 insertions(+), 4 deletions(-) rename docs/{ => design}/fssr.md (90%) rename docs/{png/rubik_fssr_2.png => images/fssr/flowchart.png} (100%) rename docs/{png/rubik_fssr_1.png => images/fssr/sequence_diagram.png} (100%) diff --git a/docs/fssr.md b/docs/design/fssr.md similarity index 90% rename from docs/fssr.md rename to docs/design/fssr.md index 3fb36bd..184b364 100644 --- a/docs/fssr.md +++ b/docs/design/fssr.md @@ -1,20 +1,27 @@ +# 【需求设计】异步内存分级回收 fssr策略 + ## 方案目标 + 在混部集群中,在线和离线业务被同时部署到同一物理资源(节点)上,同时离线业务是内存资源消耗型,在线业务有波峰波谷,在离线业务之间内存资源竞争导致在线业务受影响。该方案目标在充分利用内存资源的同时保证在线QoS。 ## 总体设计 + 各个模块之间的联系如下: -![](png/rubik_fssr_1.png) +![sequence_diagram](../images/fssr/sequence_diagram.png) - 用户部署rubik,rubik向k8s注册监听pod事件。 - 当离线业务被部署时k8s会通知rubik,rubik向该离线pod配置memory.high。 - 同时rubik实时监控当前节点的内存使用量,使用fssr策略向pod配置memory.high。 ### 依赖说明 + 内核需要支持memcg级内存水位线方案,即提供`memory.high`和`memory.high_async_ratio`。 ### 详细设计 + 内存分级方案中,rubik新增FSSR内存处理模块,该模块主要处理获取主机(节点)的总内存(total memory)、预留内存(reserved memory)、剩余内存(free memory)。并根据FSSR算法设置离线内存的memory.high。具体策略如下: -![](png/rubik_fssr_2.png) +![flowchart](../images/fssr/flowchart.png) + - rubik启动时计算预留内存,默认为总内存的10%,如果总内存的10%超过10G,则为10G - 配置离线容器的cgroup级别水位线,内核提供`memory.high`和`memory.high_async_ratio`两个接口,分别配置cgroup的软上限和警戒水位线。启动rubik时默认配置`memory.high`为`total_memory`(总内存)`*`80% - 获取剩余内存free_memory @@ -22,13 +29,16 @@ - 持续一分钟free_memory>2`*`reserved_memory时提高离线的memory.high,每次提升总内存的1%,total_memory`*`1% 说明: + 1. 离线应用memory.high的范围为`[total_memory*30%, total_memory*80%]` ### 配置说明 -``` + +```json "dynMemory": { "policy": "fssr" } ``` + - dynMemory表示动态内存 -- policy目前只支持fssr \ No newline at end of file +- policy目前只支持fssr diff --git a/docs/png/rubik_fssr_2.png b/docs/images/fssr/flowchart.png similarity index 100% rename from docs/png/rubik_fssr_2.png rename to docs/images/fssr/flowchart.png diff --git a/docs/png/rubik_fssr_1.png b/docs/images/fssr/sequence_diagram.png similarity index 100% rename from docs/png/rubik_fssr_1.png rename to docs/images/fssr/sequence_diagram.png -- 2.41.0