精华内容
下载资源
问答
  • 网卡中断绑核

    2021-07-22 17:08:53
    相比使用内核的irqbalance使网卡中断在所有核上进行调度,使用手动绑核中断固定 住能有效提高业务网络收发包的能力。 方法: 步骤1 关闭irqbalance。 若要对网卡进行绑核操作,则需要关闭irqbalance。 1.停止irq...

    目的:

    相比使用内核的irqbalance使网卡中断在所有核上进行调度,使用手动绑核将中断固定 住能有效提高业务网络收发包的能力。

    方法:

    步骤1 关闭irqbalance。
    若要对网卡进行绑核操作,则需要关闭irqbalance。
    1.停止irqbalance服务,重启失效。

    systemctl stop irqbalance.service 
    

    2.关闭irqbalance服务,永久有效。

    systemctl disable irqbalance.service 
    

    3.查看irqbalance服务状态是否已关闭。

    systemctl status irqbalance.service
    

    步骤2 查看网卡pci设备号,假设当前网卡名为enp5s0。

    ethtool -i enp5s0
    

    在这里插入图片描述
    步骤3 查看pcie网卡所属NUMA node。

    lspci -vvvs <bus-info>
    

    在这里插入图片描述
    步骤4 查看NUMA node对应的core的区间,例如此处就可以绑到0~23。

    lscpu
    

    在这里插入图片描述
    步骤5 查看网卡队列数

    ethtool -l enp5s0
    

    在这里插入图片描述
    步骤6 进行中断绑核,该网卡共有16个队列,将这些中断逐个绑至所在NumaNode的16个Core上(例如此处就是绑到NUMA node0对应的0-23上面)。

    bash smartIrq.sh
    

    脚本内容如下:

    #!/bin/bash
    irq_list=(`cat /proc/interrupts | grep enp5s0 | awk -F: '{print $1}'`)
    
    cpunum=0
    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
    

    步骤7 利用脚本查看是否绑核成功。

    sh irqCheck.sh enp5s0
    
    #!/bin/bash
    intf=$1
    log=irqSet-`date "+%Y%m%d-%H%M%S"`.log
    
    cpuNum=$(cat /proc/cpuinfo | grep processor -c)
    
    irqListRx=$(cat /proc/interrupts | grep ${intf} | awk -F: '{print $1}')
    irqListTx=$(cat /proc/interrupts | grep ${intf} | awk -F: '{print $1}')
    
    for irqRX in ${irqListRx[@]}
    do
    cat /proc/irq/${irqRX}/smp_affinity_list
    done
    
    for irqTX in ${irqListTx[@]}
    do
    cat /proc/irq/${irqTX}/smp_affinity_list
    done
    

    其他方式绑核:

    对于有些网卡可能不适用,可以选择手动方式进行中断绑核
    1、查看网卡通道数:

    ethtool -l ethx   # 查看网卡通道数
    # ethtool -L ethx combined 2 该命令修改网卡队列数
    

    该网卡队列为32
    在这里插入图片描述
    2、查看网卡中断号

    cat /proc/interrupts|grep $(ethtool -i ethx |awk 'NR==5'|awk '{print $2}')|awk '{print $1$(NF)}'
    

    enp189s0f0对应中断号为597~628
    在这里插入图片描述
    3、查看网卡所在numa_node

    cat /sys/class/net/ethx/device/numa_node
    

    enp189s0f0在numa 2 core上
    在这里插入图片描述
    4、将enp189s0f0上所有的中断绑定到numa 2 core上

    echo 48 > /proc/irq/597/smp_affinity_list
    echo 49 > /proc/irq/598/smp_affinity_list
    echo 50 > /proc/irq/599/smp_affinity_list
    echo 51 > /proc/irq/600/smp_affinity_list
    echo 52 > /proc/irq/601/smp_affinity_list
    echo 53 > /proc/irq/602/smp_affinity_list
    echo 54 > /proc/irq/603/smp_affinity_list
    echo 55 > /proc/irq/604/smp_affinity_list
    echo 56 > /proc/irq/605/smp_affinity_list
    echo 57 > /proc/irq/606/smp_affinity_list
    echo 58 > /proc/irq/607/smp_affinity_list
    echo 59 > /proc/irq/608/smp_affinity_list
    echo 60 > /proc/irq/609/smp_affinity_list
    echo 61 > /proc/irq/610/smp_affinity_list
    echo 62 > /proc/irq/611/smp_affinity_list
    echo 63 > /proc/irq/612/smp_affinity_list
    echo 64 > /proc/irq/613/smp_affinity_list
    echo 65 > /proc/irq/614/smp_affinity_list
    echo 66 > /proc/irq/615/smp_affinity_list
    echo 67 > /proc/irq/616/smp_affinity_list
    echo 68 > /proc/irq/617/smp_affinity_list
    echo 69 > /proc/irq/618/smp_affinity_list
    echo 70 > /proc/irq/619/smp_affinity_list
    echo 71 > /proc/irq/620/smp_affinity_list
    

    此时numa core不够,需要一个core绑定两个中断

    echo 48 > /proc/irq/621/smp_affinity_list
    echo 49 > /proc/irq/622/smp_affinity_list
    echo 50 > /proc/irq/623/smp_affinity_list
    echo 51 > /proc/irq/624/smp_affinity_list
    echo 52 > /proc/irq/625/smp_affinity_list
    echo 53 > /proc/irq/626/smp_affinity_list
    echo 54 > /proc/irq/627/smp_affinity_list
    echo 55 > /proc/irq/628/smp_affinity_list
    

    5、查看是否绑核成功

    cat /proc/irq/597/smp_affinity_list
    cat /proc/irq/598/smp_affinity_list
    cat /proc/irq/599/smp_affinity_list
    cat /proc/irq/600/smp_affinity_list
    cat /proc/irq/601/smp_affinity_list
    cat /proc/irq/602/smp_affinity_list
    cat /proc/irq/603/smp_affinity_list
    cat /proc/irq/604/smp_affinity_list
    cat /proc/irq/605/smp_affinity_list
    cat /proc/irq/606/smp_affinity_list
    cat /proc/irq/607/smp_affinity_list
    cat /proc/irq/608/smp_affinity_list
    cat /proc/irq/609/smp_affinity_list
    cat /proc/irq/610/smp_affinity_list
    cat /proc/irq/611/smp_affinity_list
    cat /proc/irq/612/smp_affinity_list
    cat /proc/irq/613/smp_affinity_list
    cat /proc/irq/614/smp_affinity_list
    cat /proc/irq/615/smp_affinity_list
    cat /proc/irq/616/smp_affinity_list
    cat /proc/irq/617/smp_affinity_list
    cat /proc/irq/618/smp_affinity_list
    cat /proc/irq/619/smp_affinity_list
    cat /proc/irq/620/smp_affinity_list
    cat /proc/irq/621/smp_affinity_list
    cat /proc/irq/622/smp_affinity_list
    cat /proc/irq/623/smp_affinity_list
    cat /proc/irq/624/smp_affinity_list
    cat /proc/irq/625/smp_affinity_list
    cat /proc/irq/626/smp_affinity_list
    cat /proc/irq/627/smp_affinity_list
    cat /proc/irq/628/smp_affinity_list
    
    展开全文
  • 中断的绑定

    2021-07-05 16:25:35
    背景:硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能。 cpumask_set_cpu和irq_set_affinity...3、设置中断绑定 irq

    背景:硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能。
    cpumask_set_cpu和irq_set_affinity:
    1、声明cpumask

    cpumask_t cpumask = CPU_MASK_NONE;/*no bits set*/
    

    2、设置cpumask

    cpumask_set_cpu(cpuid,cpumask);  /* 设置对应bit为1 */
    

    3、设置中断与核绑定

    irq_set_affinity(irq,cpumask);/*irq为中断号*/
    

    参考链接:
    https://www.cnblogs.com/lvzh/p/13415852.html

    中断:http://www.wowotech.net/linux_kenrel/interrupt_descriptor.html

    展开全文
  • 多队列网卡是一种技术,最初是用来解决网络IO QoS (quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的上...

    多队列网卡是一种技术,最初是用来解决网络IO QoS (quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。同时也可以降低单个CPU的负载,提升系统的计算能力。

    1.网卡多队列

    1.1硬件是否支持网卡多队列

    使用lspci -vvv命令查看网卡的参数。

    Ethernet controller的条目内容,如果有MSI-X && Enable+ && TabSize > 1,则该网卡是多队列网卡,如图1.1所示。

    8d420f7dea1b3b21e906201dd6d08d0a.png

    图1.1 lspci

    Message Signaled Interrupts(MSI)是PCI规范的一个实现,可以突破CPU 256条interrupt的限制,使每个设备具有多个中断线变成可能,多队列网卡驱动给每个queue申请了MSI。MSI-X是MSI数组,Enable+指使能,TabSize是数组大小。 http://en.wikipedia.org/wiki/Message_Signaled_Interrupts

    1.2如何打开网卡多队列

    cat /etc/modprobe.conf查看网卡驱动。

    broadcom网卡的驱动为e1000,默认打开网卡多队列。如图1.2。

    273fa22aee20ab377d6366633349e89d.png

    图1.2 broadcom e1000

    intel网卡的驱动为igb,默认不打开网卡多队列,需要添加options igb RSS=8,8(不同网卡之间的配置用“逗号”隔开)。如图1.3。

    fdc00adc6a8349193bc77fdaeb83f2db.png

    图1.3 intel igb

    修改完驱动后需要重启。查看是否打开了网卡多队列,以broadcom网卡为例。cat /proc/interrupt | grep eth。产生了8个网卡队列,并且对应着不同的中断。如图1.4。

    c01d9ee10685b6610e5bfadedec3f67c.png

    图1.4 打开网卡多队列

    2.设置中断亲和性

    2.1设置中断CPU亲和性方法

    将中断52-59分别绑定到CPU0-7上。

    echo "1" > /proc/irq/52/smp_affinity

    echo "2" > /proc/irq/53/smp_affinity

    echo "4" > /proc/irq/54/smp_affinity

    echo "8" > /proc/irq/55/smp_affinity

    echo "10" > /proc/irq/56/smp_affinity

    echo "20" > /proc/irq/57/smp_affinity

    echo "40" > /proc/irq/58/smp_affinity

    echo "80" > /proc/irq/59/smp_affinity         /proc/irq/${IRQ_NUM}/smp_affinity为中断号为IRQ_NUM的中断绑定的CPU核的情况。以十六进制表示,每一位代表一个CPU核。

    1(00000001)代表CPU0

    2(00000010)代表CPU1

    3(00000011)代表CPU0和CPU1

    2.2绑定脚本

    摘自 https://code.google.com/p/ntzc/source/browse/trunk/zc/ixgbe/set_irq_affinity.sh

    # setting up irq affinity according to /proc/interrupts

    # 2008-11-25 Robert Olsson

    # 2009-02-19 updated by Jesse Brandeburg

    #

    # > Dave Miller:

    # (To get consistent naming in /proc/interrups)

    # I would suggest that people use something like:

    # char buf[IFNAMSIZ+6];

    #

    # sprintf(buf, "%s-%s-%d",

    # netdev->name,

    # (RX_INTERRUPT ? "rx" : "tx"),

    # queue->index);

    #

    # Assuming a device with two RX and TX queues.

    # This script will assign:

    #

    # eth0-rx-0 CPU0

    # eth0-rx-1 CPU1

    # eth0-tx-0 CPU0

    # eth0-tx-1 CPU1

    #

    set_affinity()

    {

    MASK=$((1<

    printf "%s mask=%X for /proc/irq/%d/smp_affinity\n" $DEV $MASK $IRQ

    printf "%X" $MASK > /proc/irq/$IRQ/smp_affinity

    #echo $DEV mask=$MASK for /proc/irq/$IRQ/smp_affinity

    #echo $MASK > /proc/irq/$IRQ/smp_affinity

    }

    if [ "$1" = "" ] ; then

    echo "Description:"

    echo " This script attempts to bind each queue of a multi-queue NIC"

    echo " to the same numbered core, ie tx0|rx0 --> cpu0, tx1|rx1 --> cpu1"

    echo "usage:"

    echo " $0 eth0 [eth1 eth2 eth3]"

    fi

    # check for irqbalance running

    IRQBALANCE_ON=`ps ax | grep -v grep | grep -q irqbalance; echo $?`

    if [ "$IRQBALANCE_ON" == "0" ] ; then

    echo " WARNING: irqbalance is running and will"

    echo " likely override this script's affinitization."

    echo " Please stop the irqbalance service and/or execute"

    echo " 'killall irqbalance'"

    fi

    #

    # Set up the desired devices.

    #

    for DEV in $*

    do

    for DIR in rx tx TxRx

    do

    MAX=`grep $DEV-$DIR /proc/interrupts | wc -l`

    if [ "$MAX" == "0" ] ; then

    MAX=`egrep -i "$DEV:.*$DIR" /proc/interrupts | wc -l`

    fi

    if [ "$MAX" == "0" ] ; then

    echo no $DIR vectors found on $DEV

    continue

    #exit 1

    fi

    for VEC in `seq 0 1 $MAX`

    do

    IRQ=`cat /proc/interrupts | grep -i $DEV-$DIR-$VEC"$" | cut -d: -f1 | sed "s/ //g"`

    if [ -n "$IRQ" ]; then

    set_affinity

    else

    IRQ=`cat /proc/interrupts | egrep -i $DEV:v$VEC-$DIR"$" | cut -d: -f1 | sed "s/ //g"`

    if [ -n "$IRQ" ]; then

    set_affinity

    fi

    fi

    done

    done

    done

    PS:从网上的资料来看,可以将一个中断绑定到多个CPU上。但是从实际操作情况,在我的服务器上只能将一个中断绑定到一个CPU上。设置绑定多个CPU无效。

    3.参考

    多队列简介 http://blog.csdn.net/turkeyzhou/article/details/7528182

    linux内核对网卡驱动多队列的支持 http://blog.csdn.net/dog250/article/details/5303416

    大量小包的CPU密集型系统调优案例一则 http://blog.netzhou.net/?p=181

    展开全文
  • 使用以下sh命令将中断与cpu1绑定echo "00000002"> /proc/irq/122/smp_affinityecho "00000002"> /proc/irq/130/smp_affinityecho "00000002"> /proc/irq/138/smp_affinityecho "00000002"> /proc/irq/...

    使用以下sh命令将中断与cpu1绑定

    echo "00000002"> /proc/irq/122/smp_affinity

    echo "00000002"> /proc/irq/130/smp_affinity

    echo "00000002"> /proc/irq/138/smp_affinity

    echo "00000002"> /proc/irq/146/smp_affinity

    echo "00000002"> /proc/irq/154/smp_affinity

    echo "00000002"> /proc/irq/162/smp_affinity

    echo "00000002"> /proc/irq/170/smp_affinity

    echo "00000002"> /proc/irq/178/smp_affinity

    其中0000 0002是CPU位掩码

    0000 0001代表cpu0                (0001)

    0000 0002代表cpu1                (0010)

    0000 0004代表cpu2                (0100)

    0000 0008代表cpu3                (1000)

    0000 0010代表cpu4                         …

    0000 0020代表cpu5                         …

    0000 0040代表cpu6

    0000 0080代表cpu7

    0000 1000代表cpu12

    0000 2000代表cpu13

    0000 4000代表cpu14

    0000 8000代表cpu15

    122 130 138… 代表中断号,可以通过cat /proc/interrupts 查看,比如:

    CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       CPU8       CPU9       CPU10      CPU11      CPU12      CPU13      CPU14      CPU15

    0: 2836021658          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0    IO-APIC-edge  timer

    1:          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0    IO-APIC-edge  i8042

    8:          1          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0    IO-APIC-edge  rtc

    9:          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0   IO-APIC-level  acpi

    14:          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0    IO-APIC-edge  ata_piix

    15:          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0    IO-APIC-edge  ata_piix

    74:          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0   IO-APIC-level  ehci_hcd:usb1, uhci_hcd:usb7

    82:    3528529          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0   IO-APIC-level  ehci_hcd:usb2, uhci_hcd:usb3, uhci_hcd:usb5

    90:          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0   IO-APIC-level  uhci_hcd:usb4, uhci_hcd:usb6

    98:          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0   IO-APIC-level  ata_piix

    122:    2763140     230754     215676     358665          0     201511          0          0          0          0          0          0     293421     557226          0          0       PCI-MSI-X  eth0-0

    130:    1461917     384097          0     530340          0     340883          0          0          0          0          0          0     544599    1028591          0          0       PCI-MSI-X  eth0-1

    138:    9408263     386733          0     532291          0     339515          0          0          0     887092          0          0     543892     133412          0          0       PCI-MSI-X  eth0-2

    146:    1389996     385305          0     523059          0     338329          0          0          0     872085          0          0     538788     133612          0          0       PCI-MSI-X  eth0-3

    154:    2246010     780522          0     516565          0    1184495          0          0          0          0          0          0     122112     129627          0          0       PCI-MSI-X  eth0-4

    162:    3004146     795611          0     523047          0    1208300          0          0          0          0          0          0     125758     133923          0          0       PCI-MSI-X  eth0-5

    170:    1629295    1631921          0     517097          0     330875          0          0          0          0          0          0     122532     129621          0          0       PCI-MSI-X  eth0-6

    178:    1373049    1673169          0     527089          0     340378          0          0          0          0          0          0     126040     134264          0          0       PCI-MSI-X  eth0-7

    186:          2          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0       PCI-MSI-X  cnic

    201:    2708756          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0   IO-APIC-level  megasas

    NMI:      32838      13281      12893      12890      14718      14028      13263      13258      14212      21869      13291      13185      14386      16830      13786      13480

    LOC: 2836199593 2836199609 2836199536 2836199460 2836199384 2836199304 2836199225 2836199152 2836199059 2836198967 2836198896 2836198831 2836198747 2836198675 2836198597 2836198524

    ERR:          0

    MIS:          0

    由于旧版本内核不支持RPS,所以不能实现软中断均匀分布,故只能将固定的中断与cpu绑定

    展开全文
  • 硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能。 现在的服务器上动不动就是多 CPU 多核、多网卡、多硬盘,如果能让...
  • 现象是新交付的机器网络中断只在cpu单个核心上,导致单核跑满,其它核心空闲,造成了资源浪费,性能上不去绑定方法如下(假设网卡是eth0):shset_irq_affinity-xlocaleth0IFACECOREMASK->FILE====================...
  • 中断绑定 2.1 关闭中断平衡守护进程 2.2 脱离中断平衡守护进程 2.3 手动设置中断的CPU亲和性三.总结 一.网络流量上不去 在Linux的网络调优方面,如果你发现网络流量上不去,那么有一个方面需要去查一下: 网卡...
  • Linux驱动中断学习

    2021-05-17 19:53:43
    中断注册函数request_irq() 用来注册中断服务。在 2.4 内核中,需要包含的头文件是 #include ,2.6 内核中需要包含的头文件则是#include 。函数原型如下:2.4 内核intrequest_irq(unsignedintirq,void(*handler)(int...
  • 原标题:DPDK性能影响因素之绑核原理 背景 DPDK的本质任务就是提升服务器对网络包的处理能力。在性能的提升上,有很多要素,诸如轮询,用户态驱动,亲和性与独占,降低访存开销,软件调优,利用IA新硬件技术。本篇...
  • 中断系统流程解析:asm_do_IRQ(unsigned int irq, struct pt_regs *regs)handle_IRQ(irq, regs);generic_handle_irq(irq);/*Garmen:进行一般的中断处理*/struct irq_desc *desc = irq_to_desc(irq); /*#define irq_...
  • 1.在系统结构中,CPU工作的模式有两种,一种是中断,由各种设备发起;一种是轮询,由CPU主动发起。所有的linux操作系统都是基于中断驱动的。当我们在键盘上按下一个按键时,键盘就会对CPU说,一个键已经被按下。在...
  • 一,绑定中断到CPU 查看系统中断irq cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 0: 51 0 0 0 0 0 0 0 IO-APIC 2-edg...
  • 为了减少上下文切换的可能性,需要提示内核,禁止将其他用户空间任务调度到DPDK应用线程所在。isolcpus Linux内核参数用于此目的。例如,如果DPDK应用程序要在逻辑核心1,2和3上运行,则应将以下内容添加到内核参数...
  • 前言:标题谈的是多核CPU下绑定某个中断到指定的CPU的方法,但是实际工作中,这个方法可以适配很多种数据接收的情况,所以就记录一下自己之前工作上遇到的具体某一个问题以及解决方法。  之前有一个项目,需要串口...
  • IO优化除了磁盘选型、RAID级别设定等因素外,在kernel层也有IO调度与CPU中断可以优化。在RH442之linux IO调度(电梯算法)篇中提到了IO算法的选择与优化,而在无意间刚好看到了小米运维部站点上的一篇文章,也提到了一...
  • 先来看一下问题, 我们通过 ifconfig 查看接口的名称 为 p15p1, 一般机器为 eth0 再通过命令 ➜ ~ cat /proc/interrupts | head -n 1 && cat /proc/interrupts |grep p15p1 CPU0 CPU1 CPU2 CPU3 ... 8的CPU编号是0-7)
  • 还有一种更高级的做法是,将不同网卡的中断与CPU绑定,这样可以大幅度提升网卡的效率。于是,对“将不同网卡的中断与CPU绑定,这样可以大幅度提升网卡的效率”比较感兴趣,所以找了点资料了解一下。先总结如下:1. ...
  • 5-设备树_中断

    2021-05-14 04:25:07
    ARM平台支持GIC中断控制器: GIC所支持的中断类型: 1.PPI:私有中断中断必须绑定一个固定CPU,当处理该中断时,必须由绑定的CPU处理 2.SPI:共享中断中断的处理可被任意的CPU处理 3.SWI:软中断,用于...
  • 中断均衡问题每个网卡队列对应的中断默认并没有跟相应的cpu做绑定,也就是说默认情况下这些中断都是没有绑定的,那么按内核默认的处理策略,在没有开启irqblance的情况下,对于没有绑定的中断,默认都会在cpu0上运行...
  • 现在的服务器一般都是多核了,但是中断很多时候都是只用一个,如果有些中断要求比较高,可以把它独立分配给一个cpu使用。查看irq资源cat /proc/interruptsCPU0 CPU1 CPU2 CPU30: 131 0 0 1914 IO-APIC-edge timer1...
  •  //如果是最左侧的定时器,就要重新对底层clock event device设置中断了。 unlock_hrtimer_base(timer, &flags); return ret; } 决定hrtimer是否迁移的函数是: /* * Switch the timer base to the current CPU ...
  • cpu数,物理,逻辑的关系: 逻辑CPU个数 > 物理CPU个数 * CPU内核数 开启了超线程 逻辑CPU个数 = 物理CPU个数 * CPU内核数 没有开启超线程 cpu数,物理,逻辑的查看方法: #cat /proc/cpuinfo ...
  • cat /proc/interrupts : 查看中断都发生在哪些cpu上 cat /proc/irq/80/smp_affinity : 查看某个中断(80号)亲和性绑定在哪个cpu上
  • Linux 中断管理机制GIC 硬件原理GIC,Generic Interrupt Controller。是ARM公司提供的一个通用的中断控制器。主要作用为:接受硬件中断信号,并经过一定处...
  • CPU和NUMA架构的影响 Redis关键系统配置 Redis内存碎片 Redis缓冲区 这一讲,我们来学习一下CPU对Redis的性能影响及应对方法。 主流CPU架构 学习之前,我们先来了解主流CPU架构有哪些,有什么特点,以便我们...
  • 摘要: 中断: 当网卡接收到数据包后,会触发硬中断,通知CPU来收包。硬中断是一个CPU和网卡交互的过程。这其实会消耗CPU资源。特别是在使用速度极快的万兆网卡 之后,大量的网络交互使得CPU很大一部分资源消耗在...
  • APIC是伴随多核处理器产生的,所有的共用一个I/O APIC,用于统一接收来自外部I/O设备的中断,而后根据软件的设定,格式化出一条包含该中断所有信息的Interrupt Message,发送给对应的CPU。   每个有一个Local ...
  • 中断在驱动中是非常常用的,无论是外部的 GPIO 中断,还是 SPI,I2C 等发送或接收中断,都是必不可少的。所以今天来看看 Linux 中的中断处理。 上面我们根据中断来源,屏蔽方式和中断入口对中断进行了简单的分类...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,930
精华内容 15,172
关键字:

中断绑核