Назад | Перейти на главную страницу

IRQ обрабатывается не всеми процессорами

У меня проблема с балансировкой irq. Я взял номера irq из / etc / interrupts и назначил каждый irq каждому из 24 процессоров как этот учебник говорит

for i in {143..166};do cat /proc/irq/${i}/smp_affinity; done
000001                                                                                                                                   
000002                                                                                                                                   
000004                                                                                                                                   
000008                                                                                                                                   
000010                                                                                                                                   
000020                                                                                                                                   
000040                                                                                                                                   
000080                                                                                                                                   
000100
000200
000400
000800
001000
002000
004000
008000
010000
020000
040000
080000
100000
200000
400000
800000

После этого мы тестируем сервер, отправляя около 10 миллионов пакетов в секунду, и наблюдаем за выводом команды top.

top - 15:19:06 up  5:02,  8 users,  load average: 12.51, 12.86, 12.38
Tasks: 278 total,  17 running, 261 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,  0.7 id,  0.0 wa, 99.3 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,  1.0 id,  0.0 wa, 99.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni,  0.7 id,  0.0 wa, 99.3 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,  1.0 id,  0.0 wa, 99.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us,  0.0 sy,  0.0 ni,  4.0 id,  0.0 wa, 96.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.0 us,  0.0 sy,  0.0 ni,  4.7 id,  0.0 wa, 95.3 hi,  0.0 si,  0.0 st
%Cpu6  :  0.0 us,  0.0 sy,  0.0 ni,  5.3 id,  0.0 wa, 94.7 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us,  0.0 sy,  0.0 ni,  6.0 id,  0.0 wa, 94.0 hi,  0.0 si,  0.0 st
%Cpu8  :  0.0 us,  0.3 sy,  0.0 ni,  5.0 id,  0.0 wa, 94.7 hi,  0.0 si,  0.0 st
%Cpu9  :  0.0 us,  0.3 sy,  0.0 ni,  5.6 id,  0.0 wa, 94.1 hi,  0.0 si,  0.0 st
%Cpu10 :  0.0 us,  0.3 sy,  0.0 ni,  5.3 id,  0.0 wa, 94.4 hi,  0.0 si,  0.0 st
%Cpu11 :  0.0 us,  0.0 sy,  0.0 ni,  6.0 id,  0.0 wa, 94.0 hi,  0.0 si,  0.0 st
%Cpu12 :  0.0 us,  0.0 sy,  0.0 ni,  1.0 id,  0.0 wa, 99.0 hi,  0.0 si,  0.0 st
%Cpu13 :  0.0 us,  0.0 sy,  0.0 ni,  1.0 id,  0.0 wa, 99.0 hi,  0.0 si,  0.0 st
%Cpu14 :  0.0 us,  0.3 sy,  0.0 ni,  1.0 id,  0.0 wa, 98.7 hi,  0.0 si,  0.0 st
%Cpu15 :  0.0 us,  0.0 sy,  0.0 ni,  0.7 id,  0.0 wa, 99.3 hi,  0.0 si,  0.0 st
%Cpu16 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu17 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu18 :  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu19 :  1.3 us,  0.3 sy,  0.0 ni, 98.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu20 :  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu21 :  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu22 :  0.7 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu23 :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.3 hi,  0.0 si,  0.0 st
KiB Mem:  65947892 total,  1055364 used, 64892528 free,    24544 buffers
KiB Swap: 50321404 total,        0 used, 50321404 free,   348920 cached

У меня вопрос, почему загружено только 16 из 24 процессоров? Это нормально? Как я могу сбалансировать IRQ для всех процессоров?