# Linux迁移，设置迁移Agent资源限制
SMS为Linux迁移提供了源端资源限制功能，主要用于限制SMS-Agent在源端的CPU占用率，内存使用量和磁盘吞吐量。
#### 使用须知
资源限制功能依赖于源端Linux服务器内置的cgroups功能。若源端服务器的cgroups功能存在缺陷或异常情况，可能会导致资源限制失效。如在实施过程中发现资源限制未达预期效果，请联系主机迁移服务技术支持人员协助排查。
#### 前提条件
**源端Linux主机安装并启用了cgroups功能**。
在源端主机执行如下命令，查看是否有cgroups功能。
```
mount | grep cgroup
```
如果查询到如下cgroups V1/V2版本挂载情况时，代表源端主机已启用了cgroups功能；如果查不到类似的挂载情况，则源端主机没有安装或没有启用cgroups功能。
如需使用SMS提供的资源限制功能，需要您自行评估安装或者启用cgroups是否会影响源端业务。如果您源端业务本身和cgroups相关，请通过提交工单，提前咨询SMS迁移专家，确认SMS资源限制和源端业务是否有冲突。
- cgroups V1 版本 ![](https://support.huaweicloud.com/sms_faq/zh-cn_image_0000001478101138.png "点击放大")
  以下3个挂载点分别对应CPU，内存和磁盘IO的控制系统。
  - /sys/fs/cgroup/CPU,CPUacct
  
  - /sys/fs/cgroup/memory
  
  - /sys/fs/cgroup/blkio
   
- cgroups V2 版本 ![](https://support.huaweicloud.com/sms_faq/zh-cn_image_0000001529342289.png "点击放大")
  可以看到cgroups V2 挂载在 /sys/fs/cgroup ，V2版本和V1版本略有区别，V2版本不会挂载在具体的资源项。
  
 
#### 设置方法
1. 登录[主机迁移服务管理控制台](https://console.huaweicloud.com/sms3.0/?#/sms/overview)。
2. 在左侧导航树中，单击"**服务器迁移** "，进入**服务器迁移**列表页面。
3. 在**服务器迁移** 列表页面找到待迁移的服务器，在"**迁移阶段/实时状态** "列，单击"**设置目的端** "，进入**迁移配置**页面。
4. 展开"**资源限制（可选）** "，仔细阅读[参数说明和注意事项]后，设置"**CPU限制** "、"**内存限制** "和"**磁盘吞吐限制** "参数。
   
    表1参数说明和注意事项 
   | 参数       | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 注意                                                                                                                                                                                                                                                     |
   |:---|:---|:---|
   | CPU限制 | 该限制值表示限制SMS-Agent占用源端CPU总资源的百分比。 - 当输入为空时候表示不限制。  - 参数值取整数（1\<= CPU限制 \<=100），单位%。  - 为保证迁移正常运行，CPU总核数乘以限制百分比不低于0.2核。   换算公式：CPU限制百分比=限制CPU核数/总CPU核数\*100（单位%）。 例如： 源端服务器拥有4核CPU，您想限制迁移最多使用约0.5核的CPU资源，可以输入13%。 | - CPU限制和磁盘吞吐限制会约束对应资源的使用，迁移速度会根据限定值有不同程度的降低。  - 设置了资源限制时，会在源端/sys/fs/cgroup下创建sms_mig_cgroup文件夹，并创建限制规则参数。     |
   | 内存限制     | 该限制值表示限制SMS-Agent对源端内存的使用量。假如迁移Agent占用内存资源超过设置的限定值，会启动保护机制，将迁移Agent停止或者结束。 - 当输入为空时候表示不限制内存资源。  - 参数值取整数（200\<= 内存限制 \<=1000）单位MB。  - 为保证迁移正常运行，限制不低于200 MB。                                                                                                                                  | - CPU限制和磁盘吞吐限制会约束对应资源的使用，迁移速度会根据限定值有不同程度的降低。  - 设置了资源限制时，会在源端/sys/fs/cgroup下创建sms_mig_cgroup文件夹，并创建限制规则参数。     |
   | 磁盘吞吐限制   | 该限制值表示限制迁移时源端磁盘读写的速度。限制后迁移过程磁盘读写的速度不超过设置的限定值。 - 当输入为空时候表示不限制磁盘吞吐资源。  - 参数值取整数（10\<=磁盘吞吐限制\<=1000）单位MB/s。  - 为保证迁移正常运行，限制不低于10 MB/s。                                                                                                                                                                        | - CPU限制和磁盘吞吐限制会约束对应资源的使用，迁移速度会根据限定值有不同程度的降低。  - 设置了资源限制时，会在源端/sys/fs/cgroup下创建sms_mig_cgroup文件夹，并创建限制规则参数。     |
      
   
   
#### 重新调整资源限制
已配置目的端但未开始迁移的任务、已暂停的任务和迁移完成待同步的任务，可以单击操作列的"**更多 \> 管理迁移设置 \> 限制迁移资源**"，重新设置资源限制。
#### 查看资源使用情况
您可以使用**top** ，**iotop**等指令查看迁移过程中的资源使用情况，限制值略有小波动属于正常现象。
