# 场景化调优domain子命令参数说明

#### 命令功能

场景化参数配置，交互式对参数进行配置。

- 支持用户选择和查看多个配置模板，支持用户选择模板后保存和回退。
- TUI界面完整功能需终端软件具有如下配置：

  1. 终端风格为xterm。
  2. 界面颜色为深色。
  3. 编码方式为UTF-8。
- 推荐使用最新版本的MobaXterm，TUI界面分区中线的拖动功能需终端模拟器支持鼠标移动事件报告，可通过以下命令查看是否支持。

```
printf '\033[?1003h\033[?1006h'
```


  命令输入后移动鼠标，支持该功能的回显示例如下：

  恢复正常命令如下：

```
printf '\033[?1003l\033[?1006l'
```


#### 命令格式

```
./kspect domain [-h]
```


#### 参数说明


**表1 domain子命令参数**

| 参数 | 参数说明 |
| --- | --- |
| 无 | 进入场景化参数配置界面。 |
| \-h/\-\-help | 获取帮助信息。 |


#### 目录说明

针对场景化参数配置的功能，工具新增resource目录，结构如下：

```
├── resource
│   ├── backups
│   ├── libraries
│   │   ├── bios
│   │   ├── grub.sh
│   │   ├── kvm.sh
│   │   ├── nic.sh
│   │   ├── swap.sh
│   │   └── sysctl.sh
│   ├── resource.yaml
│   └── templates
│       ├── BSS-domain-js.yaml
│       ├── BSS-domain-yn.yaml
│       └── Financial-ISV-kvm.yaml
```


**表2 目录说明**

| 目录 | 说明 |
| --- | --- |
| backups | 场景配置文件的备份目录。若参数有变动，在应用参数改动后会将修改前的参数配置自动生成一个备份文件保存在此目录。 |
| libraries | 原子能力库文件夹，包含具体可执行文件。 说明： 工具提供以下可执行文件，使修改的参数永久生效。若服务器重启后修改的参数不生效，请自行检查相关系统配置文件。 bios：基于redfish接口进行bios参数的查询和修改操作，不修改系统上文件内容。 grub.sh：对Linux内核大页参数和中断透传参数有修改时，会对“/etc/default/grub”和“/boot/efi/xxx/grub.cfg”进行读写操作。该能力库不支持debian系操作系统。 kvm.sh：通过virsh命令与libvirt进行交互，实现对KVM虚拟机的配置管理。该功能需要用户操作系统环境提前安装virsh。 nic.sh：执行网卡中断绑核时候会将nic.sh脚本拷贝到“/opt/kspect/”目录下，并将执行的命令写入“/etc/rc.d/rc.local”。 swap.sh：对swap设备开关状态有修改时，会将swap相关命令写入“/etc/fstab”。 sysctl.sh：对系统相关参数有修改时，会将修改值写入“/etc/sysctl.conf”。 |
| resource.yaml | 具体可执行文件的映射文件。 |
| templates | 场景配置模板目录，工具提供3个模板文件（BSS\-domain\-js.yaml、BSS\-domain\-yn.yaml和Financial\-ISV\-kvm.yaml）。 |


#### 使用示例

1. 进入交互界面。
  1 ./kspect domain

2. 选择模板。
  默认选择BSS-domain-js.yaml文件，单击“Apply”按钮进入设置参数的界面。

**表3 选择界面说明**

| 区域 | 名称 | 说明 |
| --- | --- | --- |
| ① | 模板选择 | 选择模板区域，可以使用鼠标和键盘选择。 |
| ② | 参数配置预览 | 模板的全量配置预览，模板中所有的配置项和推荐值。 |
| ③ | 操作栏 | 提供应用模板按钮和退出界面功能。 |


3. 配置参数。
  可在“Modify Value”列对需修改的参数值进行修改。

  若出现bios相关参数修改失败的情况，请参见修改bios相关参数时失败的解决方法进行处理。

**表4 参数配置界面说明**

| 区域 | 名称 | 说明 |
| --- | --- | --- |
| ① | 依赖项配置 | 因一些参数配置需使用BMC信息才可采集，提供BMC信息输入窗口，输入后单击“Apply Depend”按钮可刷新参数详情中依赖BMC才可获取的参数信息。 |
| ② | 参数详情 | 展示参数配置。 Name：参数选项名称，可单击参数前选中框（或参数名称）进行选中或取消选中。 Current Value：参数的当前值。 Recommended Value：参数的推荐值。 Modify Value：参数修改后的值，文本类设置可单击对应值后输入待设置的内容，带“→”的值可单击后在下拉框中选择。 |
| ③ | 备份详情 | 备份文件区域，若参数有变动，在单击“Apply Change”按钮后会将修改前的参数配置自动生成一个备份文件，并对备份文件提供“加载”、“重命名”和“删除”功能。 |
| ④ | 操作栏 | 提供“刷新”、“应用修改”、“检查”、“返回上一界面”和“退出”功能。 |


**表5 BSS-domain-js.yaml参数推荐值部分说明**

| 参数 | 推荐值 | 推荐说明 |
| --- | --- | --- |
| NIC Queue Count | NUMA Core Count | 将网卡队列数设置为网卡所在NUMA的CPU核心数量。 |
| IRQ Core Bindg | IRQ NUMA Affinity | 将网卡硬中断请求绑定到与网卡位于同一NUMA节点的CPU核心上。 |
| vm.min\_free\_kbytes | NUMAs\*2097152 | 将系统保留的最小空闲内存设置为当前环境NUMA个数乘以2GB。 |


**表6 Financial-ISV-kvm.yaml参数推荐值部分说明**

| 参数 | 推荐值 | 推荐说明 |
| --- | --- | --- |
| vm\_interrupt\_passthrough | enabled | 启用虚拟设备中断透传，虚拟机可获得更好的中断处理性能。（仅支持openEuler 22.03 LTS SP3及以上的操作系统版本）。 |
| transparent\_hugepage | never | 禁用透明大页，适合对延迟敏感或需要避免大页内存碎片化的场景。 |
| VM Hugepage Size | max | 使用大页可以减少对TLB层次结构的压力，增加TLB命中率。 |
| VM Cache Mode | none | none模式无QEMU层缓存，I/O路径短，延迟低，无缓冲一致性风险，兼顾安全与性能。 |
| VM IO Mode | native | 使用Linux内核原生的异步I/O（AIO）接口，能降低I/O延迟，提升吞吐。 |


**表7 Financial-ISV-kvm.yaml自定义相关参数格式说明**

| 参数 | 参数选项 | 格式说明 |
| --- | --- | --- |
| vCPU Bind | Custom\_Input | 用户可根据需要自定义该参数值，填写格式：单个数字，或者空格分隔的多个数字和连续范围，例如1/0\-1/3 5\-10 12\-15。 |
| Emulator Bind | Custom\_Input | 用户可根据需要自定义该参数值，填写格式：单个数字，或者空格分隔的多个数字和连续范围，例如1/0\-1/3 5\-10 12\-15。 |
| IOThread Num | Custom\_Input | 用户可根据需要自定义该参数值，填写格式：单个数字或者带括号表示具体id编号，例如2/2(iothread id:1 3)。 |
| IOThread Bind CPU | Custom\_Input | 用户可根据需要自定义该参数值，填写格式：iothread\_id+对应cpu范围，例如iothread1:1 iothread2:2\-3，多个iothread用空格分隔。 |
| IOThread Bind Disk | Custom\_Input | 用户可根据需要自定义该参数值，填写格式：iothread\_id+磁盘，例如iothread1:/dev/disk1 iothread2:/dev/disk2，多个iothread用空格分隔。 |
| VM Cache Mode | Custom\_Input | 用户可根据需要自定义该参数值，填写格式：磁盘+对应cache属性，例如 /dev/disk1:none /dev/disk2:default，多个磁盘用空格分隔。 |
| VM IO Mode | Custom\_Input | 用户可根据需要自定义该参数值，填写格式：磁盘+对应cache属性，例如/dev/disk1:native /dev/disk2:io\_uring，多个磁盘用空格分隔。 |


  配置虚拟机“VM IO Mode”参数为“native”时，要求该虚拟机的“Cache Mode”参数必须配置为“none”或“directsync”，否则会导致配置失败，报错信息如图1。 若出现绑核失败的情况时，请参见虚拟机操作绑核失败的解决方法进行处理。 若出现对物理机内存大页参数及虚拟机内存大页和内存绑定设置后，虚拟机无法启动的情况时，请参见虚拟机无法启动的解决方法进行处理。

  图1 配置错误提示

4. 加载修改后的参数。
  修改完成后单击“Apply Change”按钮，在弹出框中单击“Yes”按钮确认，修改值应用后将自动生成修改前参数的备份文件。

  修改bios相关参数为高风险操作，可能导致系统无法启动，请确认参数后单击“Yes”按钮确认继续。

5. 退出界面。
  完成配置后单击右下角“Exit”按钮退出界面。
