netperf udp với các gói nhỏ trên liên kết 10g được giới hạn bởi ksoftirqd


1

Tôi muốn điền vào một liên kết 10Gbps với các gói udp rất nhỏ (64B).

Tôi sử dụng lệnh sau

 for i in 1 2 3 4 5 6 7 8; do netperf -H 192.168.56.2 -p 12865 -t UDP_STREAM -l 60 -C -c -- -m 64 -s 16M -S 16M -R 1 &  done

Nhưng tôi không thể có được thông lượng hơn 250Mbps. Đối với các tin nhắn nhỏ, tôi thấy rằng một luồng có tên ksoftirqd đang sử dụng 100% lõi CPU ở máy thu. Vì vậy, câu hỏi của tôi là

  • Làm thế nào để giảm mức sử dụng cpu của ksoftirqd cho các tin nhắn nhỏ?

Cài đặt hiện tại: Tôi có hai máy Ubuntu (8 lõi và 16 lõi) với các Intel Intel2020-T2 và kernel 3.11 được kết nối với một công tắc Juniper 10G. Đây là những thay đổi tôi có cho sysctlcfg.conf

net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack = 0
net.core.rmem_max = 268435456
net.core.wmem_max = 268435456
net.ipv4.tcp_rmem = 4096 87380 134217728
net.ipv4.tcp_wmem = 4096 65536 134217728
net.core.netdev_max_backlog = 250000
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_congestion_control = htcp

Tôi cũng tăng kích thước txqueue của NIC

/sbin/ifconfig eth0 txqueuelen 10000

Tôi đã tìm kiếm sự kết hợp ngắt bằng cách sử dụng tham số rx-usecs nhưng làm tăng thông lượng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.