nvme跑fio的绑核写法

本文介绍了如何通过查找NVMe设备的busID确定其对应的NUMA节点,并以此进行绑核操作以提高NVMe性能。通过脚本自动化遍历所有NVMe设备,确定每个设备的CPU绑定范围,例如将NVMe0-3绑定到节点1的32-63核,NVMe4-5绑定到节点2的64-95核。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在测试nvme性能的时候,发现不稳定,所以进行了绑核操作,简单的说下方法。
1 ,我们要知道每个nvme对应接在哪个node上面。
a .找出nvme对应的busID

[root@localhost ~]# readlink -f /sys/block/nvme0n1
/sys/devices/pci0000:20/0000:20:01.1/0000:21:00.0/nvme/nvme0/nvme0n1
[root@localhost ~]# readlink -f /sys/block/nvme0n1|cut -d '/' -f 6
0000:21:00.0

b. 根据busID找到对应的CPU node

[root@localhost ~]# lspci  -s 0000:21:00.0 -vv |grep -i node
        NUMA node: 1

c.写成脚本的形式遍历每个nvme对应的node

#!/bin/bash
lscpu |grep -i node
for nvme in `nvme list|sed 1,2d|awk '{print $1}'|awk -F "/" '{print $NF}'`
do
        echo $nvme
        busid=$(readlink -f /sys/block/$nvme |cut -d '/' -f 6)
        echo "busid = $busid"
        lspci -s $busid -vv |grep -i node
        echo "======================================"
done

结果如图所示

NUMA node(s):        4
NUMA node0 CPU(s):   0-31,128-159
NUMA node1 CPU(s):   32-63,160-191
NUMA node2 CPU(s):   64-95,192-223
NUMA node3 CPU(s):   96-127,224-255
nvme0n1
busid = 0000:21:00.0
        NUMA node: 1
======================================
nvme1n1
busid = 0000:22:00.0
        NUMA node: 1
======================================
nvme2n1
busid = 0000:23:00.0
        NUMA node: 1
======================================
nvme3n1
busid = 0000:24:00.0
        NUMA node: 1
======================================
nvme4n1
busid = 0000:e1:00.0
        NUMA node: 2
======================================
nvme5n1
busid = 0000:e2:00.0
        NUMA node: 2
======================================

2.确定nvme对应的node号以后,我们进行绑核操作,比如每个nvme绑定8个核数,因为nvme0-3对应的node为1,物理核数为32-63,nvme4-5对应的node为2,物理核数为64-95.那我们写绑核脚本的时候要确定所对应的核数是正确的,为了确保脚本方便写,我们要在nvme4的时候,对应的核数从64开始,那么通通过计算nvme0的核数就要从32开始。脚本如下(NVME_Multi_Random.sh 为跑多盘的测试脚本,600是时间600s的意思):

#!/bin/bash
num=32
for nvme in $(nvme list  |sed 1,2d|awk '{print $1}'|awk -F "/" '{print $NF}')
do
        echo "$num-$(expr $num + 7 )"
        nohup  taskset -c $num-$(expr $num + 7 ) sh NVME_Multi_Random.sh $nvme 600 &
        let num=num+8
done
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值