---
title: 操作系统调优
description: "通过对物理机和虚拟机操作系统的调优，可以有效提升服务器性能。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/systuningguide/systemtg/kunpengtypical_05_0022.html
sourcePath: /source/zh/kunpengcpfs/systuningguide/systemtg/kunpengtypical_05_0022.html
indexId: 6c01d65f173057dad5deda9b02804d5d315df6604038f0d5d84e1da290d814d774
---
# 操作系统调优

通过对物理机和虚拟机操作系统的调优，可以有效提升服务器性能。

#### 物理机

通过修改GRUB参数进行物理机操作系统调优。

1. 打开“/etc/grub2-efi.cfg”文件。

```
vi /etc/grub2-efi.cfg
```


2. 按“i”进入编辑模式，在内核参数后增加以下IOMMU相关配置。

```
iommu.passthrough=1 pci=realloc kvm-arm.vgic_v4_enable=1 audit=0
```


  kvm-arm.vgic_v4_enable=1只针对鲲鹏920新型号处理器。

3. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
4. 重启物理机的操作系统，使配置生效。


#### 虚拟机

在虚拟机操作系统上的调优，包括配置文件描述符限制、关闭Audit并配置大页以及网卡中断绑核优化。

1. 配置扩展文件描述符。

  a. 打开“/etc/security/limits.conf”文件。

```
vi /etc/security/limits.conf
```


  b. 按“i”进入编辑模式，在文件中添加以下两行，建议将每个用户的软限制和硬限制文件描述符数量设置为102400，以避免在测试过程中可能出现软件最大打开文件数被限制在1024的情况，影响服务器性能。

```
*   soft     nofile      102400
*   hard     nofile      102400
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
  d. 重启虚拟机的操作系统，使配置生效。
2. 关闭Audit并配置大页。

  a. 打开“/etc/grub2-efi.cfg”文件。

```
vi /etc/grub2-efi.cfg
```


  b. 按“i”进入编辑模式，在内核参数后增加如下大页配置。

```
audit=0
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
  d. 重启虚拟机的操作系统，使配置生效。
3. 网卡中断绑核优化。

  a. 创建一个名为irq.sh的Bash脚本文件，在脚本文件中写入以下内容，用于将网卡中断绑定到指定的CPU核上。
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #!/bin/bash iface=$1 start_core=$2 end_core=$3 irq_list=(`cat /proc/interrupts |grep ${iface} | awk -F: '{print $1}'`) ncpu=$start_core for irq in ${irq_list[@]} do echo ${ncpu} > /proc/irq/${irq}/smp_affinity_list echo `cat /proc/irq/${irq}/smp_affinity_list` (( ncpu+=1 )) if (( ${ncpu} > $end_core )); then ncpu=$start_core fi done

    中断绑核传入参数说明： iface：网卡中断名称，示例为virtio*-input和virtio*-output，其中*表示实际的网口队列名称序号，需根据实际环境修改。 网口队列名称序号可以通过如下命令查看： cat /proc/interrupts start_core：中断绑定的开始CPU核编号，例如“0”，请根据实际需求修改。 end_core：中断绑定的结束CPU核编号，例如“1”（当只有一个核心时），请根据实际环境修改。

  b. 停止并禁用irqbalance服务。

```
systemctl stop irqbalance
systemctl disable irqbalance
```


  c. 执行脚本。
    对于4U虚拟机，建议中断绑核方式为：将virtio*-input.*
    中断分别绑定到2个核上（例如0
    和1
    ），将virtio*-output.*
    中断按顺序绑定到虚拟机的每一个核上（例如0
    到3
    ）。

```
bash irq.sh virtio*-input 0 1
bash irq.sh virtio*-output 0 3
```
