Tôi chưa làm bất cứ điều gì bất thường đối với cấu hình phần cứng hoặc hạt nhân của mình (tất cả các cài đặt mặc định, cài đặt hệ điều hành mới, ngăn xếp Linux 3.11 TCP / IP) và tôi trung bình khoảng 3,83 triệu tin nhắn mỗi giây thông qua TCP trong khi tôi chỉ đạt trung bình 0,75 triệu tin nhắn mỗi giây thông qua UDP. Điều này dường như hoàn toàn bất chấp những gì tôi mong đợi của hai giao thức.
Điều gì có thể gây ra sự khác biệt lớn nhất và làm cách nào tôi có thể chẩn đoán nó trên Ubuntu 13.10?
#TCP RESULTS
Recv Send Send Utilization Service Demand
Socket Socket Message Elapsed Send Recv Send Recv
Size Size Size Time Throughput local remote local remote
bytes bytes bytes secs. 10^6bits/s % S % S us/KB us/KB
87380 65536 64 10.00 1963.43 32.96 17.09 5.500 2.852
#UDP RESULTS
Socket Message Elapsed Messages CPU Service
Size Size Time Okay Errors Throughput Util Demand
bytes bytes secs # # 10^6bits/sec % SS us/KB
4194304 64 10.00 7491010 0 383.5 28.97 24.751
212992 10.00 1404941 71.9 25.03 21.381
Đối với thử nghiệm này, tôi có hai máy chủ thử nghiệm giống hệt nhau và được kết nối trực tiếp qua cáp chéo 10G. Các NIC được sử dụng trong trường hợp này là Intel X520 với cấu hình bên ngoài và được kết nối với khe cắm PCIe 3.0 x8 trên bo mạch chủ, giao tiếp với CPU thông qua bộ điều khiển NUMA.
netperf
cho các điểm chuẩn, các bài kiểm tra UDP_STREAM và TCP_STREAM, được cố định cho cùng CPU và kích thước thông báo 64 byte.