
# 增加预留系统开销
在CCI 2.0运行的pod，辅助pod容器运行的系统组件会占用少量底层资源，因此在某些场景下，pod会出现实际内存使用无法达到pod规格内存的情况。因此针对此类场景，提供2个开关用以预留系统组件开销。
pod的annotation "resource.cci.io/memory-reservation" ：是否开启预留系统开销。默认为"false"，开启为"true"。开启后，CCI 2.0会为pod实例的系统组件预留1Gi的内存，且如果超出当前pod规格，会自动向上调整到最近的规格。以调整后的规格进行计费。
pod的annotation "resource.cci.io/memory-burst-size" ：是否扩大容器的内存资源隔离上限。默认为"false"，开启为"true"。开启后，会调整pod的所有容器的limit.memory资源到最大(即pod规格的内存大小)，以此扩大宿主环境的cgroup内存上限；可以让开启预留系统开销开关后，且因自动规格后升阶的pod，得以将被cgroup限制的内存释放出来，供给应用容器使用。
表1开启预留系统开销举例 
| 场景描述                                    | Pod配置                                                                                                                                                                       | 实际申请资源量 | 规整后规格 | 在CCI运行Pod的最终规格                                                                        | 说明                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|:---|:---|
| 单容器，仅配置request，开启预留系统开销，开启扩大容器的内存资源隔离上限 | ``` annotations： "resource.cci.io/memory-reservation": "true" "resource.cci.io/memory-burst-size": "true" ... containers: - resources: requests: cpu: '1.5' memory: 2Gi ``` | 1.5c3Gi | 2c4Gi | ``` containers: - resources: limits: memory: 4Gi requests: cpu: '1.5' memory: 2Gi ``` | 计算流程如下： 1. 只有request，看request值计算资源申请量（1.5c2Gi） 2. 开启了预留系统开销，追加1Gi内存（1.5c3Gi） 3. 按照[4.3.1节规整规则](https://support.huaweicloud.com/usermanual-cci2/cci_01_0058.html)，自动向上规整后（2c4Gi） 4. 开启扩大容器的内存资源隔离上限，设置所有容器的limit资源到4Gi |
   
