Tôi không nghĩ rằng vấn đề của bạn nằm ở kernel, tôi cũng không nghĩ rằng nút cổ chai tính toán của bạn có liên quan đến nội dung mạng của bạn, tùy thuộc vào phần cứng của bạn.
Tôi đã làm thí nghiệm sau:
Máy chủ 1: sử dụng hping3 để tạo các gói SYN với tốc độ 28.870 mỗi giây (xuất phát từ thử nghiệm và được cho là đủ gần với những gì bạn đang làm) tới cổng 25565 trên máy chủ 2. Lệnh được sử dụng:
$ sudo /usr/sbin/hping3 -p 25565 --syn --interval u20 s19
Trong đó "s19" là máy chủ 2 và "u20" có tổng phí và kết quả thực tế là 28.870 gói mỗi giây thay vì 50.000.
Máy chủ 2: có một quy tắc DROP iptables. Turbostat cũng được chạy để quan sát tải điện và CPU. Các lệnh này đã được chạy:
doug@s19:~/tmp$ sudo iptables -xvnL ; ngủ 10 ; sudo iptables -xvnL
Chuỗi INPUT (chính sách CHẤP NHẬN 0 gói, 0 byte)
pkts byte đích prot chọn không tham gia đích nguồn
2293479 91739160 DROP tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 trạng thái tcp MỚI dpt:25565
Chuỗi FORWARD (chính sách CHẤP NHẬN 0 gói, 0 byte)
pkts byte đích prot chọn không tham gia đích nguồn
ĐẦU RA chuỗi (chính sách CHẤP NHẬN 0 gói, 0 byte)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi INPUT (chính sách CHẤP NHẬN 0 gói, 0 byte)
pkts byte đích prot chọn không tham gia đích nguồn
2582175 103287000 DROP tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 trạng thái tcp MỚI dpt:25565
Chuỗi FORWARD (chính sách CHẤP NHẬN 0 gói, 0 byte)
pkts byte đích prot chọn không tham gia đích nguồn
ĐẦU RA chuỗi (chính sách CHẤP NHẬN 0 gói, 0 byte)
pkts byte đích prot chọn không tham gia đích nguồn
Vì vậy, 2582175 - 2293479 = 288.696 gói trong 10 giây hoặc 28.870/giây.
Lưu ý: Tôi có ít byte trên mỗi gói hơn bạn, ở mức 40, trong khi bạn dường như có 60.
$ sudo turbostat --Summary --quiet --show Busy%,Bzy_MHz,IRQ,PkgWatt,PkgTmp,RAMWatt,GFXWatt,CorWatt --interval 6
Bận% Bzy_MHz IRQ PkgTmp PkgWatt CorWatt GFXWatt RAMWatt
0,61 4800 196262 38 17,91 17,25 0,00 0,89
0,61 4800 196844 38 17,95 17,29 0,00 0,89
0,60 4800 197409 39 18,01 17,35 0,00 0,89
Mức sử dụng CPU không đáng kể, nhưng sử dụng nhiều hơn khoảng 16 watt so với khi không hoạt động (không hoạt động = 1,5 watt).
Máy tính để bàn 1: Máy qemu/kvm ảo 20.04 chạy với tư cách khách trên máy chủ 2.
Lệnh 1 hping3 của máy chủ trở thành:
$ sudo /usr/sbin/hping3 -p 25565 --syn --interval u20 192.168.111.19
Và kết quả là:
doug@desk-ff:~$ sudo iptables -xvnL ; ngủ 100; sudo iptables -xvnL
Chuỗi INPUT (chính sách CHẤP NHẬN 117 gói, 9384 byte)
pkts byte đích prot chọn không tham gia đích nguồn
2086906 83476240 DROP tcp -- enp1s0 * 0.0.0.0/0 0.0.0.0/0 trạng thái tcp MỚI dpt:25565
Chuỗi FORWARD (chính sách CHẤP NHẬN 0 gói, 0 byte)
pkts byte đích prot chọn không tham gia đích nguồn
ĐẦU RA chuỗi (chính sách CHẤP NHẬN 73 gói, 9116 byte)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi INPUT (chính sách CHẤP NHẬN 144 gói, 12151 byte)
pkts byte đích prot chọn không tham gia đích nguồn
4970267 198810680 DROP tcp -- enp1s0 * 0.0.0.0/0 0.0.0.0/0 trạng thái tcp MỚI dpt:25565
Chuỗi FORWARD (chính sách CHẤP NHẬN 0 gói, 0 byte)
pkts byte đích prot chọn không tham gia đích nguồn
ĐẦU RA chuỗi (chính sách CHẤP NHẬN 77 gói, 9996 byte)
pkts byte đích prot chọn không tham gia đích nguồn
Vì vậy, 4970267 - 2086906 = 288.361 gói trong 100 giây hoặc 28.834/giây.
và trên máy chủ:
$ sudo turbostat --Summary --quiet --show Busy%,Bzy_MHz,IRQ,PkgWatt,PkgTmp,RAMWatt,GFXWatt,CorWatt --interval 6
Bận% Bzy_MHz IRQ PkgTmp PkgWatt CorWatt GFXWatt RAMWatt
9.61 4800 207685 58 31.19 30.53 0.00 0.89
9.64 4800 211088 58 31.14 30.48 0.00 0.89
9,44 4800 202499 59 30,72 30,07 0,00 0,89
Tôi có 12 CPU, vì vậy mức sử dụng lớn hơn 100% của 1 CPU. Hoặc qua đầu trang:
hàng đầu - 11:58:16 lên 10 ngày, 18:57, 2 người dùng, tải trung bình: 1,00, 0,99, 0,81
Nhiệm vụ: tổng cộng 239, 1 đang chạy, 238 đang ngủ, 0 đã dừng, 0 zombie
%Cpu0 : 0,3 us, 0,0 sy, 0,0 ni, 99,7 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu1 : 0,0 us, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 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,0 sy, 0,0 ni,100,0 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,0 us, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu6 : 0,0 us, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu7 : 0,0 us, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu8 : 0,0 us, 0,0 sy, 0,0 ni, 98,3 id, 0,0 wa, 0,0 hi, 1,7 si, 0,0 st
%Cpu9 : 0,0 chúng tôi, 3,1 sy, 0,0 ni, 95,6 id, 0,0 wa, 0,0 hi, 1,4 si, 0,0 st
%Cpu10 : 8,3 us, 90,3 sy, 0,0 ni, 0,0 id, 0,0 wa, 0,0 hi, 1,3 si, 0,0 st
%Cpu11 : 0,0 us, 0,0 sy, 0,0 ni, 98,3 id, 0,0 wa, 0,0 hi, 1,7 si, 0,0 st
Vì vậy, vâng, bạn đang làm điều này trong VM dường như tiêu tốn nhiều tài nguyên CPU hơn.Một tùy chọn là không làm điều này trong máy ảo. Hoặc, gán thêm VCPU cho VM. Tôi có thể nhận được tới 118.283 gói mỗi giây (tùy chọn khoảng thời gian "u1" hping3), chỉ tăng một vài phần trăm trong mức sử dụng CPU tổng thể trên máy chủ.
CHỈNH SỬA: Việc sử dụng bộ xử lý máy chủ lưu trữ các gói mỗi giây cho VM khá thú vị với phản hồi loại chức năng bước trong khoảng từ 5000 đến 6000 pps (hãy nhớ rằng 8,33% là 100% của 1 CPU cho máy chủ 12 CPU này):