---
title: 网络收发IOPS或流量高
description: "1. 关闭irqbalance。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24_rc3/Plugins_UserGuide/devkit-hypertuner-042.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_24_rc3/Plugins_UserGuide/devkit-hypertuner-042.html
indexId: 3bf20835f61088b38f8e719692b47b9880fec9f72766373fe09bcd4e83b2c29990
---
# 网络收发IOPS或流量高

#### 网口中断绑核

1. 关闭irqbalance。
若要对网卡进行绑核操作，则需要关闭irqbalance。

  a. 执行以下命令，停止irqbalance服务，重启失效。

```
systemctl stop irqbalance.service
```


  b. 执行以下命令，关闭irqbalance服务，永久有效。

```
systemctl disable irqbalance.service
```


  c. 执行以下命令，查看irqbalance服务状态是否已关闭。

```
systemctl status irqbalance.service
```


2. 执行以下命令，查看网卡pci设备号，举例当前网卡名为enp131s0。

```
ethtool -i enp131s0
```


  查询结果如下。

```
driver:hinic
version:2.3.2.1
firmware-version:2.3.2.1
```


3. 执行以下命令，查看PCIe网卡所属NUMA Node。
  lspci -vvvs <bus-info>

  查询结果如下。

4. 执行以下命令查看NUMA Node对应的core的区间，例如此处就可以绑定到48~71。
  lscpu

5. 进行中断绑核操作，1822网卡上共计有16个队列，将这些中断逐个绑定至所在NUMA Node的16个core上（此处举例中断绑定至NUMA node2 对应的48~63上面）。
  脚本内容如下：

```
#!/bin/bash
irq_list=(`cat /proc/interrupts | grep enp131s0 | awk -F: '{print $1}'`)
cpunum=48  # 修改为所在node的第一个Core
for
irq in ${irq_list[@]}
do
echo $cpunum > /proc/irq/$irq/smp_affinity_list
echo `cat /proc/irq/$irq/smp_affinity_list`
(( cpunum+=1 ))
done
```


  执行以下命令编辑脚本。

  bash smartIrq.sh

6. 利用脚本查看是否绑核成功。
  脚本内容如下。

```
#!/bin/bash
# 网卡名
intf=$1
log=irqSet-`date "+%Y%m%d-%H%M%S"`.log
# 可用的CPU数
cpuNum=
$(
cat /proc/cpuinfo |grep processor -c
)
# RX TX中断列表
irqListRx=
$(
cat /proc/interrupts | grep ${intf} | awk -F':' '{print $1}'
)
irqListTx=
$(
cat /proc/interrupts | grep ${intf} | awk -F':' '{print $1}'
)
# 绑定接收中断rx irq
for
irqRX in ${irqListRx[@]}
do
cat /proc/irq/${irqRX}/smp_affinity_list
done
# 绑定发送中断tx irq
for
irqTX in ${irqListTx[@]}
do
cat /proc/irq/${irqTX}/smp_affinity_list
done
```


  执行脚本查看是否绑核成功。

  sh irqCheck.sh enp131s0

  查询结果如下。
