CPU中斷數查看與網卡中斷綁核


CPU中斷數查看

多核CPU每個核心CPU發生中斷的數量查看

 

# mpstat -I SUM -P ALL 1 3 
Linux 5.4.0-40-generic (verify-new-511kernel)     08/28/2021     _x86_64_    (72 CPU)

09:09:30 AM  CPU    intr/s
09:09:31 AM  all  18762.00
09:09:31 AM    0    253.00
09:09:31 AM    1    256.00
09:09:31 AM    2    253.00
09:09:31 AM    3    253.00
09:09:31 AM    4    254.00
09:09:31 AM    5    260.00

說明:

pstat  [-I {SUM| CPU | SCPU}][-P {|ALL}] [internal [count]]
參數 解釋
-I 查看中斷  {SUM 表示匯總每個CPU上的中斷數| SCPU 單個軟件中斷數} 
-P {|ALL} 表示監控哪個CPU, cpu在[0,cpu個數-1]中取值
internal 相鄰的兩次采樣的間隔時間、
count 采樣的次數,count只能和delay一起使用

當中斷集中在某個CPU時,會把這個CPU打滿,建議將中斷平均分配每個CPU處理。

查看中斷數高的CPU忙於處理哪些中斷

命令:cat /proc/interrupts

cat /proc/interrupts 
           CPU0       CPU1       CPU2       CPU3       
  0:        245          0          0    7134094    IO-APIC-edge  timer
  8:          0          0         49          0    IO-APIC-edge  rtc
  9:          0          0          0          0   IO-APIC-level  acpi
 66:         67          0          0          0   IO-APIC-level  ehci_hcd:usb2
 74:     902214          0          0          0         PCI-MSI  eth0
169:          0          0         79          0   IO-APIC-level  ehci_hcd:usb1
177:          0          0          0    7170885   IO-APIC-level  ata_piix, b4xxp
185:          0          0          0      59375   IO-APIC-level  ata_piix
NMI:          0          0          0          0 
LOC:    7104234    7104239    7104243    7104218 
ERR:          0
MIS:          0

 

查看網卡當前中斷號綁定的CPU編號

cat /proc/interrupts | head -n1    && cat  /proc/interrupts | grep eth
        CPU0 CPU1    
124: 1733966 0 IR-PCI-MSI 49283073-edge eth0-0
125: 0 0 IR-PCI-MSI 49283074-edge eth0-1
126: 0 0 IR-PCI-MSI 49283075-edge eth0-2
127: 0 0 IR-PCI-MSI 49283076-edge eth0-3
128: 0 0 IR-PCI-MSI 49283077-edge eth0-4
129: 0 0 IR-PCI-MSI 49283078-edge eth0-5
130: 0 0 IR-PCI-MSI 49283079-edge eth0-6
131: 0 0 IR-PCI-MSI 49283080-edge eth0-7

如上看每個網卡隊列對應一個中斷編號,以eth0-0 網卡隊列為例,對應中斷號為124 查看該隊列綁定的CPU

cat  /proc/irq/124/smp_affinity_list  查看綁定的CPU列表,(10進制表示)

# cat /proc/irq/124/smp_affinity_list 
0

如上表示綁定的為CPU0

cat /proc/irq/124/smp_affinity  查看綁定的CPU列表 (16進制表示)

# cat /proc/irq/124/smp_affinity
00,00000000,00000001

將中斷號綁定所有CPU

綁定中斷到0、1、2、3核

root@verify-new-511kernel:~# echo 0,1,2,3 >  /proc/irq/124/smp_affinity_list
root@verify-new-511kernel:~# cat  /proc/irq/124/smp_affinity
00,00000000,0000000f
root@verify-new-511kernel:~# cat  /proc/irq/124/smp_affinity_list
0-3
root@verify-new-511kernel:~# 

只綁定到個別核心例如CPU0和CPU1 可以寫0-1 代表 連續的核心范圍

# echo 0-1 >  /proc/irq/124/smp_affinity_list # cat  /proc/irq/124/smp_affinity_list 0-1
# cat /proc/irq/124/smp_affinity
00,00000000,00000003

綁定所有的核心(本例72個核心)

root@verify-new-511kernel:~# echo 0-71 >  /proc/irq/124/smp_affinity_list
root@verify-new-511kernel:~# cat  /proc/irq/124/smp_affinity
ff,ffffffff,ffffffff

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM