Нагрузка на одно ядро
Нагрузка на одно ядро
Добрый день.
Есть сервер с 32 процессорами ( 16 ядер + гипертрейдинг), 16гиг пямяти, стоит линукс, ядро 4.4.88, сетевая 2х10G.
Одна сетевая смотрит в мир, а на вторую через вланы приходят pppoe соединения. Собственно установил accel и нацелил на второй интерфейс, распределил прерывания сетевых по ядрам. И вот тут проблема - на той сетевой на которой все ррр соединения собраны, нагрузка сводиться на одно ядро, как будто нет распределения.
В чем может быть подвох? В какую сторону рыть?
Заранее спасибо
Есть сервер с 32 процессорами ( 16 ядер + гипертрейдинг), 16гиг пямяти, стоит линукс, ядро 4.4.88, сетевая 2х10G.
Одна сетевая смотрит в мир, а на вторую через вланы приходят pppoe соединения. Собственно установил accel и нацелил на второй интерфейс, распределил прерывания сетевых по ядрам. И вот тут проблема - на той сетевой на которой все ррр соединения собраны, нагрузка сводиться на одно ядро, как будто нет распределения.
В чем может быть подвох? В какую сторону рыть?
Заранее спасибо
Re: Нагрузка на одно ядро
Предположение, что нужно использовать RPS.
Покажите топ (нажмите там 1) что бы все ядра показались.
И perf top.
Покажите топ (нажмите там 1) что бы все ядра показались.
И perf top.
Re: Нагрузка на одно ядро
top - 11:46:03 up 20:03, 2 users, load average: 0.10, 0.26, 0.26
Tasks: 378 total, 1 running, 376 sleeping, 0 stopped, 1 zombie
%Cpu0 : 0.0 us, 0.7 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.3 us, 0.7 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 0.7 us, 0.0 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu6 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu8 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu9 : 0.3 us, 1.0 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu10 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu11 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu12 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu13 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu14 : 0.0 us, 0.7 sy, 0.0 ni, 96.7 id, 0.0 wa, 0.0 hi, 2.5 si, 0.0 st
%Cpu15 : 0.0 us, 0.4 sy, 0.0 ni, 97.1 id, 0.0 wa, 0.0 hi, 2.5 si, 0.0 st
%Cpu16 : 0.0 us, 0.7 sy, 0.0 ni, 97.1 id, 0.0 wa, 0.0 hi, 2.1 si, 0.0 st
%Cpu17 : 0.0 us, 0.7 sy, 0.0 ni, 96.5 id, 0.0 wa, 0.0 hi, 2.8 si, 0.0 st
%Cpu18 : 0.0 us, 0.7 sy, 0.0 ni, 96.0 id, 0.0 wa, 0.0 hi, 3.2 si, 0.0 st
%Cpu19 : 0.0 us, 0.7 sy, 0.0 ni, 96.4 id, 0.0 wa, 0.0 hi, 2.8 si, 0.0 st
%Cpu20 : 0.4 us, 0.7 sy, 0.0 ni, 96.4 id, 0.0 wa, 0.0 hi, 2.5 si, 0.0 st
%Cpu21 : 0.0 us, 1.1 sy, 0.0 ni, 90.7 id, 0.0 wa, 0.0 hi, 8.2 si, 0.0 st
%Cpu22 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu23 : 0.0 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu24 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu25 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu26 : 0.0 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu27 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu28 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu29 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu30 : 0.0 us, 2.4 sy, 0.0 ni, 56.9 id, 0.0 wa, 0.0 hi, 40.7 si, 0.0 st
%Cpu31 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16360236 total, 15362532 free, 251596 used, 746108 buff/cache
KiB Swap: 8388604 total, 8388604 free, 0 used. 15578088 avail Mem
вот как раз cpu30 показано
Samples: 138K of event 'cycles:pp', Event count (approx.): 21103283986
Overhead Shared Object Symbol
7.43% [kernel] [k] acpi_os_write_port
4.99% [kernel] [k] queued_spin_lock_slowpath
4.15% [kernel] [k] bnx2x_start_xmit
4.09% [kernel] [k] pppoe_rcv
3.49% [kernel] [k] _raw_spin_lock
2.83% [kernel] [k] fib_table_lookup
2.59% [kernel] [k] bnx2x_rx_int
2.50% [kernel] [k] __nf_conntrack_find_get
2.18% [kernel] [k] ipt_do_table
1.44% [kernel] [k] cpuidle_enter_state
1.38% [kernel] [k] do_csum
1.29% [kernel] [k] bnx2x_msix_fp_int
1.16% [kernel] [k] tcp_packet
1.14% [kernel] [k] menu_select
1.12% [kernel] [k] bnx2x_poll
1.07% [kernel] [k] nf_conntrack_in
1.06% [kernel] [k] napi_complete_done
1.05% [kernel] [k] __netif_receive_skb_core
0.97% [kernel] [k] nf_iterate
0.97% [kernel] [k] get_nohz_timer_target
0.95% [kernel] [k] dev_gro_receive
0.94% [kernel] [k] __dev_queue_xmit
0.94% [kernel] [k] build_skb
0.92% [kernel] [k] bnx2x_free_tx_pkt
0.89% [kernel] [k] int_sqrt
0.80% [kernel] [k] _raw_spin_lock_bh
0.77% [kernel] [k] __local_bh_enable_ip
0.76% [kernel] [k] ip_forward
0.75% [kernel] [k] find_busiest_group
0.75% [kernel] [k] bnx2x_tx_int
0.74% [kernel] [k] skb_release_head_state
0.69% [kernel] [k] native_irq_return_iret
0.68% [kernel] [k] ip_route_input_noref
0.67% [kernel] [k] __slab_free
0.62% [kernel] [k] ip_finish_output2
0.60% [kernel] [k] kmem_cache_alloc
0.58% [kernel] [k] __copy_skb_header
0.55% [kernel] [k] process_backlog
0.53% [kernel] [k] _raw_spin_lock_irqsave
0.52% [kernel] [k] __schedule
0.51% [kernel] [k] ip_rcv
0.48% [kernel] [k] vlan_do_receive
0.44% [kernel] [k] read_tsc
0.43% [kernel] [k] __do_softirq
0.42% [kernel] [k] get_page_from_freelist
0.41% [kernel] [k] csum_partial_copy_generic
0.41% [kernel] [k] skb_gro_reset_offset
0.41% [kernel] [k] ppp_receive_nonmp_frame
0.41% [kernel] [k] idle_cpu
0.40% [kernel] [k] tcp_error
Tasks: 378 total, 1 running, 376 sleeping, 0 stopped, 1 zombie
%Cpu0 : 0.0 us, 0.7 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.3 us, 0.7 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 0.7 us, 0.0 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu6 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu8 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu9 : 0.3 us, 1.0 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu10 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu11 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu12 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu13 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu14 : 0.0 us, 0.7 sy, 0.0 ni, 96.7 id, 0.0 wa, 0.0 hi, 2.5 si, 0.0 st
%Cpu15 : 0.0 us, 0.4 sy, 0.0 ni, 97.1 id, 0.0 wa, 0.0 hi, 2.5 si, 0.0 st
%Cpu16 : 0.0 us, 0.7 sy, 0.0 ni, 97.1 id, 0.0 wa, 0.0 hi, 2.1 si, 0.0 st
%Cpu17 : 0.0 us, 0.7 sy, 0.0 ni, 96.5 id, 0.0 wa, 0.0 hi, 2.8 si, 0.0 st
%Cpu18 : 0.0 us, 0.7 sy, 0.0 ni, 96.0 id, 0.0 wa, 0.0 hi, 3.2 si, 0.0 st
%Cpu19 : 0.0 us, 0.7 sy, 0.0 ni, 96.4 id, 0.0 wa, 0.0 hi, 2.8 si, 0.0 st
%Cpu20 : 0.4 us, 0.7 sy, 0.0 ni, 96.4 id, 0.0 wa, 0.0 hi, 2.5 si, 0.0 st
%Cpu21 : 0.0 us, 1.1 sy, 0.0 ni, 90.7 id, 0.0 wa, 0.0 hi, 8.2 si, 0.0 st
%Cpu22 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu23 : 0.0 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu24 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu25 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu26 : 0.0 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu27 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu28 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu29 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu30 : 0.0 us, 2.4 sy, 0.0 ni, 56.9 id, 0.0 wa, 0.0 hi, 40.7 si, 0.0 st
%Cpu31 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16360236 total, 15362532 free, 251596 used, 746108 buff/cache
KiB Swap: 8388604 total, 8388604 free, 0 used. 15578088 avail Mem
вот как раз cpu30 показано
Samples: 138K of event 'cycles:pp', Event count (approx.): 21103283986
Overhead Shared Object Symbol
7.43% [kernel] [k] acpi_os_write_port
4.99% [kernel] [k] queued_spin_lock_slowpath
4.15% [kernel] [k] bnx2x_start_xmit
4.09% [kernel] [k] pppoe_rcv
3.49% [kernel] [k] _raw_spin_lock
2.83% [kernel] [k] fib_table_lookup
2.59% [kernel] [k] bnx2x_rx_int
2.50% [kernel] [k] __nf_conntrack_find_get
2.18% [kernel] [k] ipt_do_table
1.44% [kernel] [k] cpuidle_enter_state
1.38% [kernel] [k] do_csum
1.29% [kernel] [k] bnx2x_msix_fp_int
1.16% [kernel] [k] tcp_packet
1.14% [kernel] [k] menu_select
1.12% [kernel] [k] bnx2x_poll
1.07% [kernel] [k] nf_conntrack_in
1.06% [kernel] [k] napi_complete_done
1.05% [kernel] [k] __netif_receive_skb_core
0.97% [kernel] [k] nf_iterate
0.97% [kernel] [k] get_nohz_timer_target
0.95% [kernel] [k] dev_gro_receive
0.94% [kernel] [k] __dev_queue_xmit
0.94% [kernel] [k] build_skb
0.92% [kernel] [k] bnx2x_free_tx_pkt
0.89% [kernel] [k] int_sqrt
0.80% [kernel] [k] _raw_spin_lock_bh
0.77% [kernel] [k] __local_bh_enable_ip
0.76% [kernel] [k] ip_forward
0.75% [kernel] [k] find_busiest_group
0.75% [kernel] [k] bnx2x_tx_int
0.74% [kernel] [k] skb_release_head_state
0.69% [kernel] [k] native_irq_return_iret
0.68% [kernel] [k] ip_route_input_noref
0.67% [kernel] [k] __slab_free
0.62% [kernel] [k] ip_finish_output2
0.60% [kernel] [k] kmem_cache_alloc
0.58% [kernel] [k] __copy_skb_header
0.55% [kernel] [k] process_backlog
0.53% [kernel] [k] _raw_spin_lock_irqsave
0.52% [kernel] [k] __schedule
0.51% [kernel] [k] ip_rcv
0.48% [kernel] [k] vlan_do_receive
0.44% [kernel] [k] read_tsc
0.43% [kernel] [k] __do_softirq
0.42% [kernel] [k] get_page_from_freelist
0.41% [kernel] [k] csum_partial_copy_generic
0.41% [kernel] [k] skb_gro_reset_offset
0.41% [kernel] [k] ppp_receive_nonmp_frame
0.41% [kernel] [k] idle_cpu
0.40% [kernel] [k] tcp_error
Re: Нагрузка на одно ядро
Что за прерывания висят на 30 ядре?
Есть возможность раскинуть прерывания, что бы они не попадали на виртуальные ядра(ht)?
Есть возможность раскинуть прерывания, что бы они не попадали на виртуальные ядра(ht)?
Re: Нагрузка на одно ядро
Потоки с сетевых разложены каждый на свое ядро, первый поток с сетевой на которой организовываются ррр-интерфейсы попадает на 30 ядро. Собственно нагрузка переходит на то ядро на котором этот поток перекинут.
По поводу отключения гипетрейдинга - с понедельника как буду на машине попробую отключить его и оставить только реальные ядра. Как по другому отделить ядра - не знаю.
По поводу отключения гипетрейдинга - с понедельника как буду на машине попробую отключить его и оставить только реальные ядра. Как по другому отделить ядра - не знаю.
Re: Нагрузка на одно ядро
Code: Select all
cat /proc/cpuinfo | grep -i 'core id'
Code: Select all
#cat /proc/cpuinfo | grep -i 'core id'
core id : 0
core id : 1
core id : 2
core id : 3
core id : 0
core id : 1
core id : 2
core id : 3
ps:// Подсказали, что это не всегда верно, спасибо nuclearcat
Правильнее определить так
Code: Select all
#Покажет ядра. Для многопроцессорных систем выведет через запятую.
cat /sys/devices/system/cpu/cpu0/topology/core_siblings_list
#Покажет физическое ядро и через запятую виртуальное
cat /sys/devices/system/cpu/cpu0/topology/thread_siblings_list
Покажите еще
Code: Select all
ethtool -S <интерфейс в сторону pppoe клиентов>
Re: Нагрузка на одно ядро
По поводу RPS - включил, сначала ругнулось что карта многопоточная, но принудительно включилось. Немного помогло, распределилось, но не так что бы идеально, но уже полегчало. Спасибо
По поводу определения ядер - 2хE5-2660, т.е в каждом проце 8 ядер. Вывод:
cat /proc/cpuinfo | grep -i 'core id'
core id : 0
core id : 1
core id : 2
core id : 3
core id : 4
core id : 5
core id : 6
core id : 7
core id : 0
core id : 1
core id : 2
core id : 3
core id : 4
core id : 5
core id : 6
core id : 7
core id : 0
core id : 1
core id : 2
core id : 3
core id : 4
core id : 5
core id : 6
core id : 7
core id : 0
core id : 1
core id : 2
core id : 3
core id : 4
core id : 5
core id : 6
core id : 7
cat /sys/devices/system/cpu/cpu0/topology/core_siblings_list
0-7,16-23
cat /sys/devices/system/cpu/cpu0/topology/thread_siblings_list
0,16
Честно говоря не понял что я вижу в этом выводе.
Сетевая - 03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM57810 10 Gigabit Ethernet (rev 10)
03:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM57810 10 Gigabit Ethernet (rev 10)
обычная двухголовая
Ну и ethtool:
NIC statistics:
[0]: rx_bytes: 804458584682
[0]: rx_ucast_packets: 2099580726
[0]: rx_mcast_packets: 3252
[0]: rx_bcast_packets: 3025308
[0]: rx_discards: 754
[0]: rx_phy_ip_err_discards: 0
[0]: rx_skb_alloc_discard: 0
[0]: rx_csum_offload_errors: 7
[0]: tx_bytes: 415731529018
[0]: tx_ucast_packets: 354172747
[0]: tx_mcast_packets: 267
[0]: tx_bcast_packets: 0
[0]: tpa_aggregations: 0
[0]: tpa_aggregated_frames: 0
[0]: tpa_bytes: 0
[0]: driver_filtered_tx_pkt: 0
[1]: rx_bytes: 11759852
[1]: rx_ucast_packets: 10
[1]: rx_mcast_packets: 1385
[1]: rx_bcast_packets: 44950
[1]: rx_discards: 0
[1]: rx_phy_ip_err_discards: 0
[1]: rx_skb_alloc_discard: 0
[1]: rx_csum_offload_errors: 2
[1]: tx_bytes: 456834749407
[1]: tx_ucast_packets: 373850137
[1]: tx_mcast_packets: 17
[1]: tx_bcast_packets: 0
[1]: tpa_aggregations: 1
[1]: tpa_aggregated_frames: 1
[1]: tpa_bytes: 1422
[1]: driver_filtered_tx_pkt: 0
[2]: rx_bytes: 11245991
[2]: rx_ucast_packets: 11
[2]: rx_mcast_packets: 2554
[2]: rx_bcast_packets: 55280
[2]: rx_discards: 0
[2]: rx_phy_ip_err_discards: 0
[2]: rx_skb_alloc_discard: 0
[2]: rx_csum_offload_errors: 0
[2]: tx_bytes: 446057159599
[2]: tx_ucast_packets: 373332928
[2]: tx_mcast_packets: 1447
[2]: tx_bcast_packets: 0
[2]: tpa_aggregations: 2
[2]: tpa_aggregated_frames: 2
[2]: tpa_bytes: 2844
[2]: driver_filtered_tx_pkt: 0
[3]: rx_bytes: 9514061
[3]: rx_ucast_packets: 7
[3]: rx_mcast_packets: 2530
[3]: rx_bcast_packets: 45822
[3]: rx_discards: 0
[3]: rx_phy_ip_err_discards: 0
[3]: rx_skb_alloc_discard: 0
[3]: rx_csum_offload_errors: 0
[3]: tx_bytes: 466443104873
[3]: tx_ucast_packets: 387672508
[3]: tx_mcast_packets: 377
[3]: tx_bcast_packets: 0
[3]: tpa_aggregations: 1
[3]: tpa_aggregated_frames: 1
[3]: tpa_bytes: 1422
[3]: driver_filtered_tx_pkt: 0
[4]: rx_bytes: 891410002
[4]: rx_ucast_packets: 6
[4]: rx_mcast_packets: 2165
[4]: rx_bcast_packets: 2320821
[4]: rx_discards: 0
[4]: rx_phy_ip_err_discards: 0
[4]: rx_skb_alloc_discard: 0
[4]: rx_csum_offload_errors: 19
[4]: tx_bytes: 457082304458
[4]: tx_ucast_packets: 372366720
[4]: tx_mcast_packets: 0
[4]: tx_bcast_packets: 0
[4]: tpa_aggregations: 0
[4]: tpa_aggregated_frames: 0
[4]: tpa_bytes: 0
[4]: driver_filtered_tx_pkt: 0
[5]: rx_bytes: 29905806
[5]: rx_ucast_packets: 5
[5]: rx_mcast_packets: 641
[5]: rx_bcast_packets: 99183
[5]: rx_discards: 0
[5]: rx_phy_ip_err_discards: 0
[5]: rx_skb_alloc_discard: 0
[5]: rx_csum_offload_errors: 0
[5]: tx_bytes: 468372830252
[5]: tx_ucast_packets: 385106310
[5]: tx_mcast_packets: 0
[5]: tx_bcast_packets: 0
[5]: tpa_aggregations: 0
[5]: tpa_aggregated_frames: 0
[5]: tpa_bytes: 0
[5]: driver_filtered_tx_pkt: 0
[6]: rx_bytes: 8026515
[6]: rx_ucast_packets: 6
[6]: rx_mcast_packets: 906
[6]: rx_bcast_packets: 38636
[6]: rx_discards: 0
[6]: rx_phy_ip_err_discards: 0
[6]: rx_skb_alloc_discard: 0
[6]: rx_csum_offload_errors: 0
[6]: tx_bytes: 450054581022
[6]: tx_ucast_packets: 375748245
[6]: tx_mcast_packets: 0
[6]: tx_bcast_packets: 0
[6]: tpa_aggregations: 2
[6]: tpa_aggregated_frames: 2
[6]: tpa_bytes: 2844
[6]: driver_filtered_tx_pkt: 0
[7]: rx_bytes: 21212017
[7]: rx_ucast_packets: 8
[7]: rx_mcast_packets: 1063
[7]: rx_bcast_packets: 91405
[7]: rx_discards: 0
[7]: rx_phy_ip_err_discards: 0
[7]: rx_skb_alloc_discard: 0
[7]: rx_csum_offload_errors: 0
[7]: tx_bytes: 445088959592
[7]: tx_ucast_packets: 370373906
[7]: tx_mcast_packets: 105
[7]: tx_bcast_packets: 0
[7]: tpa_aggregations: 1
[7]: tpa_aggregated_frames: 1
[7]: tpa_bytes: 1422
[7]: driver_filtered_tx_pkt: 0
rx_bytes: 805441898637
rx_error_bytes: 239711
rx_ucast_packets: 2099580779
rx_mcast_packets: 14496
rx_bcast_packets: 5721405
rx_crc_errors: 0
rx_align_errors: 0
rx_undersize_packets: 0
rx_oversize_packets: 0
rx_fragments: 0
rx_jabbers: 0
rx_discards: 754
rx_filtered_packets: 25221388
rx_mf_tag_discard: 0
pfc_frames_received: 0
pfc_frames_sent: 0
rx_brb_discard: 0
rx_brb_truncate: 0
rx_pause_frames: 0
rx_mac_ctrl_frames: 0
rx_constant_pause_events: 0
rx_phy_ip_err_discards: 0
rx_skb_alloc_discard: 0
rx_csum_offload_errors: 28
tx_bytes: 3605665218221
tx_error_bytes: 0
tx_ucast_packets: 2992623501
tx_mcast_packets: 2213
tx_bcast_packets: 0
tx_mac_errors: 0
tx_carrier_errors: 0
tx_single_collisions: 0
tx_multi_collisions: 0
tx_deferred: 0
tx_excess_collisions: 0
tx_late_collisions: 0
tx_total_collisions: 0
tx_64_byte_packets: 5715152
tx_65_to_127_byte_packets: 374681526
tx_128_to_255_byte_packets: 80649130
tx_256_to_511_byte_packets: 44363175
tx_512_to_1023_byte_packets: 52240456
tx_1024_to_1522_byte_packets: 2429987610
tx_1523_to_9022_byte_packets: 3
tx_pause_frames: 0
tpa_aggregations: 7
tpa_aggregated_frames: 7
tpa_bytes: 9954
recoverable_errors: 0
unrecoverable_errors: 0
driver_filtered_tx_pkt: 0
Tx LPI entry count: 0
А по поводу RSS я подумаю, спасибо
По поводу определения ядер - 2хE5-2660, т.е в каждом проце 8 ядер. Вывод:
cat /proc/cpuinfo | grep -i 'core id'
core id : 0
core id : 1
core id : 2
core id : 3
core id : 4
core id : 5
core id : 6
core id : 7
core id : 0
core id : 1
core id : 2
core id : 3
core id : 4
core id : 5
core id : 6
core id : 7
core id : 0
core id : 1
core id : 2
core id : 3
core id : 4
core id : 5
core id : 6
core id : 7
core id : 0
core id : 1
core id : 2
core id : 3
core id : 4
core id : 5
core id : 6
core id : 7
cat /sys/devices/system/cpu/cpu0/topology/core_siblings_list
0-7,16-23
cat /sys/devices/system/cpu/cpu0/topology/thread_siblings_list
0,16
Честно говоря не понял что я вижу в этом выводе.
Сетевая - 03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM57810 10 Gigabit Ethernet (rev 10)
03:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM57810 10 Gigabit Ethernet (rev 10)
обычная двухголовая
Ну и ethtool:
NIC statistics:
[0]: rx_bytes: 804458584682
[0]: rx_ucast_packets: 2099580726
[0]: rx_mcast_packets: 3252
[0]: rx_bcast_packets: 3025308
[0]: rx_discards: 754
[0]: rx_phy_ip_err_discards: 0
[0]: rx_skb_alloc_discard: 0
[0]: rx_csum_offload_errors: 7
[0]: tx_bytes: 415731529018
[0]: tx_ucast_packets: 354172747
[0]: tx_mcast_packets: 267
[0]: tx_bcast_packets: 0
[0]: tpa_aggregations: 0
[0]: tpa_aggregated_frames: 0
[0]: tpa_bytes: 0
[0]: driver_filtered_tx_pkt: 0
[1]: rx_bytes: 11759852
[1]: rx_ucast_packets: 10
[1]: rx_mcast_packets: 1385
[1]: rx_bcast_packets: 44950
[1]: rx_discards: 0
[1]: rx_phy_ip_err_discards: 0
[1]: rx_skb_alloc_discard: 0
[1]: rx_csum_offload_errors: 2
[1]: tx_bytes: 456834749407
[1]: tx_ucast_packets: 373850137
[1]: tx_mcast_packets: 17
[1]: tx_bcast_packets: 0
[1]: tpa_aggregations: 1
[1]: tpa_aggregated_frames: 1
[1]: tpa_bytes: 1422
[1]: driver_filtered_tx_pkt: 0
[2]: rx_bytes: 11245991
[2]: rx_ucast_packets: 11
[2]: rx_mcast_packets: 2554
[2]: rx_bcast_packets: 55280
[2]: rx_discards: 0
[2]: rx_phy_ip_err_discards: 0
[2]: rx_skb_alloc_discard: 0
[2]: rx_csum_offload_errors: 0
[2]: tx_bytes: 446057159599
[2]: tx_ucast_packets: 373332928
[2]: tx_mcast_packets: 1447
[2]: tx_bcast_packets: 0
[2]: tpa_aggregations: 2
[2]: tpa_aggregated_frames: 2
[2]: tpa_bytes: 2844
[2]: driver_filtered_tx_pkt: 0
[3]: rx_bytes: 9514061
[3]: rx_ucast_packets: 7
[3]: rx_mcast_packets: 2530
[3]: rx_bcast_packets: 45822
[3]: rx_discards: 0
[3]: rx_phy_ip_err_discards: 0
[3]: rx_skb_alloc_discard: 0
[3]: rx_csum_offload_errors: 0
[3]: tx_bytes: 466443104873
[3]: tx_ucast_packets: 387672508
[3]: tx_mcast_packets: 377
[3]: tx_bcast_packets: 0
[3]: tpa_aggregations: 1
[3]: tpa_aggregated_frames: 1
[3]: tpa_bytes: 1422
[3]: driver_filtered_tx_pkt: 0
[4]: rx_bytes: 891410002
[4]: rx_ucast_packets: 6
[4]: rx_mcast_packets: 2165
[4]: rx_bcast_packets: 2320821
[4]: rx_discards: 0
[4]: rx_phy_ip_err_discards: 0
[4]: rx_skb_alloc_discard: 0
[4]: rx_csum_offload_errors: 19
[4]: tx_bytes: 457082304458
[4]: tx_ucast_packets: 372366720
[4]: tx_mcast_packets: 0
[4]: tx_bcast_packets: 0
[4]: tpa_aggregations: 0
[4]: tpa_aggregated_frames: 0
[4]: tpa_bytes: 0
[4]: driver_filtered_tx_pkt: 0
[5]: rx_bytes: 29905806
[5]: rx_ucast_packets: 5
[5]: rx_mcast_packets: 641
[5]: rx_bcast_packets: 99183
[5]: rx_discards: 0
[5]: rx_phy_ip_err_discards: 0
[5]: rx_skb_alloc_discard: 0
[5]: rx_csum_offload_errors: 0
[5]: tx_bytes: 468372830252
[5]: tx_ucast_packets: 385106310
[5]: tx_mcast_packets: 0
[5]: tx_bcast_packets: 0
[5]: tpa_aggregations: 0
[5]: tpa_aggregated_frames: 0
[5]: tpa_bytes: 0
[5]: driver_filtered_tx_pkt: 0
[6]: rx_bytes: 8026515
[6]: rx_ucast_packets: 6
[6]: rx_mcast_packets: 906
[6]: rx_bcast_packets: 38636
[6]: rx_discards: 0
[6]: rx_phy_ip_err_discards: 0
[6]: rx_skb_alloc_discard: 0
[6]: rx_csum_offload_errors: 0
[6]: tx_bytes: 450054581022
[6]: tx_ucast_packets: 375748245
[6]: tx_mcast_packets: 0
[6]: tx_bcast_packets: 0
[6]: tpa_aggregations: 2
[6]: tpa_aggregated_frames: 2
[6]: tpa_bytes: 2844
[6]: driver_filtered_tx_pkt: 0
[7]: rx_bytes: 21212017
[7]: rx_ucast_packets: 8
[7]: rx_mcast_packets: 1063
[7]: rx_bcast_packets: 91405
[7]: rx_discards: 0
[7]: rx_phy_ip_err_discards: 0
[7]: rx_skb_alloc_discard: 0
[7]: rx_csum_offload_errors: 0
[7]: tx_bytes: 445088959592
[7]: tx_ucast_packets: 370373906
[7]: tx_mcast_packets: 105
[7]: tx_bcast_packets: 0
[7]: tpa_aggregations: 1
[7]: tpa_aggregated_frames: 1
[7]: tpa_bytes: 1422
[7]: driver_filtered_tx_pkt: 0
rx_bytes: 805441898637
rx_error_bytes: 239711
rx_ucast_packets: 2099580779
rx_mcast_packets: 14496
rx_bcast_packets: 5721405
rx_crc_errors: 0
rx_align_errors: 0
rx_undersize_packets: 0
rx_oversize_packets: 0
rx_fragments: 0
rx_jabbers: 0
rx_discards: 754
rx_filtered_packets: 25221388
rx_mf_tag_discard: 0
pfc_frames_received: 0
pfc_frames_sent: 0
rx_brb_discard: 0
rx_brb_truncate: 0
rx_pause_frames: 0
rx_mac_ctrl_frames: 0
rx_constant_pause_events: 0
rx_phy_ip_err_discards: 0
rx_skb_alloc_discard: 0
rx_csum_offload_errors: 28
tx_bytes: 3605665218221
tx_error_bytes: 0
tx_ucast_packets: 2992623501
tx_mcast_packets: 2213
tx_bcast_packets: 0
tx_mac_errors: 0
tx_carrier_errors: 0
tx_single_collisions: 0
tx_multi_collisions: 0
tx_deferred: 0
tx_excess_collisions: 0
tx_late_collisions: 0
tx_total_collisions: 0
tx_64_byte_packets: 5715152
tx_65_to_127_byte_packets: 374681526
tx_128_to_255_byte_packets: 80649130
tx_256_to_511_byte_packets: 44363175
tx_512_to_1023_byte_packets: 52240456
tx_1024_to_1522_byte_packets: 2429987610
tx_1523_to_9022_byte_packets: 3
tx_pause_frames: 0
tpa_aggregations: 7
tpa_aggregated_frames: 7
tpa_bytes: 9954
recoverable_errors: 0
unrecoverable_errors: 0
driver_filtered_tx_pkt: 0
Tx LPI entry count: 0
А по поводу RSS я подумаю, спасибо
Re: Нагрузка на одно ядро
Значит первое предположение было верным, об этом говорит вывод ethtool
Видим что на большинство входящих кадров попадает на первое прерывание. RPS как раз поможет, но не так как хотелось бы, потому что software.
Хорошей практикой считается использовать RFS, то есть это реализация похожая как RSS для ip заголовков, только для mac (ну может не совсем точно, но близко к правде). По поводу вашего BCM57810 нужно смотреть документацию о поддержке в чипе RFS.
По поводу отделить мух от котлет(реальные от HT), тут нужно поиграться, что бы понять.
cat /sys/devices/system/cpu/cpu0/topology/thread_siblings_list
cat /sys/devices/system/cpu/cpu1/topology/thread_siblings_list
cat /sys/devices/system/cpu/cpu2/topology/thread_siblings_list
cat /sys/devices/system/cpu/cpu3/topology/thread_siblings_list
cat /sys/devices/system/cpu/cpu4/topology/thread_siblings_list
Code: Select all
[0]: rx_bytes: 804458584682
[1]: rx_bytes: 11759852
[2]: rx_bytes: 11245991
[3]: rx_bytes: 9514061
[4]: rx_bytes: 891410002
[5]: rx_bytes: 29905806
[6]: rx_bytes: 8026515
[7]: rx_bytes: 21212017
Хорошей практикой считается использовать RFS, то есть это реализация похожая как RSS для ip заголовков, только для mac (ну может не совсем точно, но близко к правде). По поводу вашего BCM57810 нужно смотреть документацию о поддержке в чипе RFS.
По поводу отделить мух от котлет(реальные от HT), тут нужно поиграться, что бы понять.
cat /sys/devices/system/cpu/cpu0/topology/thread_siblings_list
cat /sys/devices/system/cpu/cpu1/topology/thread_siblings_list
cat /sys/devices/system/cpu/cpu2/topology/thread_siblings_list
cat /sys/devices/system/cpu/cpu3/topology/thread_siblings_list
cat /sys/devices/system/cpu/cpu4/topology/thread_siblings_list
Re: Нагрузка на одно ядро
Спасибо за консультацию. Пока остановился на том что буду использовать RPS, хоть и не идеально выровнялось, но вполне приятно. А про RFS - буду читать и думать.