Francois Romieu wrote: > Boris B. Zhmurov : > [...] >> Any ideas are welcome. > > Usually my Pavlov answer is "disable iptables, run latest kernel, renice > ksoftirqd like hell, see if it makes a difference and keep netdev Cced". Of course there is no iptables. And linux-2.6.18 shows even worse results with iperf + smallsized packets, than 2.6.16.29. Here some results from linux-2.6.18. Reniceing ksoftirqd to "-19" makes network performance to ~ 30% worse... From 26Mbit/s to 16-18Mbit/s. My .config attached. What we have (legend): SRV -> Server with FreeBSD-6.1 release and iperf as daemon. This server receives packets (Intel Pro 1000) CLIENT1 -> FreeBSD-6.1 release and `iperf -uc 10.1.0.5 -b1073741824 -l 64 -t 300 -i 1` as client (Realtek8169) CLIENT2 -> Linux-2.6.18 and `iperf -uc 10.1.0.5 -b1073741824 -l 64 -t 300 -i 1` as client (Realtek8169) Client1 and Client2 has no different with hardware. Both - P4@3Ghz + HT, 1Gb Ram and RTL8169 Gbit NIC. ######################################## Start sending udp packets from CLIENT1 to SRV. ######################################## 1) CLIENT1 output: l9# iperf -uc 10.1.0.5 -b1073741824 -l 64 -t 300 -i 1 ------------------------------------------------------------ Client connecting to 10.1.0.5, UDP port 5001 Sending 64 byte datagrams UDP buffer size: 9.00 KByte (default) ------------------------------------------------------------ [ 3] local 10.1.0.2 port 65121 connected with 10.1.0.5 port 5001 [ 3] 0.0- 1.0 sec 8.97 MBytes 71.7 Mbits/sec [ 3] 1.0- 2.0 sec 8.97 MBytes 71.7 Mbits/sec [ 3] 2.0- 3.0 sec 8.98 MBytes 71.9 Mbits/sec [ 3] 3.0- 4.0 sec 8.98 MBytes 71.9 Mbits/sec 2) SRV's netstat output: l7# netstat -I em0 -w 1 input (em0) output packets errs bytes packets errs bytes colls 138928 0 15282034 1 0 218 0 139086 0 15299370 1 0 170 0 138999 0 15289798 1 0 170 0 139004 0 15290394 1 0 170 0 ######################################## Start sending udp packets from CLIENT2 to SRV. ######################################## 1) CLIENT2 output: [root@bb-work ~]# iperf -uc 10.1.0.5 -b1073741824 -l 64 -t 300 -i 1 ------------------------------------------------------------ Client connecting to 10.1.0.5, UDP port 5001 Sending 64 byte datagrams UDP buffer size: 64.0 KByte (default) ------------------------------------------------------------ [ 3] local 10.1.0.6 port 32776 connected with 10.1.0.5 port 5001 [ 3] 0.0- 1.0 sec 2.32 MBytes 19.5 Mbits/sec [ 3] 1.0- 2.0 sec 2.12 MBytes 17.8 Mbits/sec [ 3] 2.0- 3.0 sec 2.35 MBytes 19.7 Mbits/sec [ 3] 3.0- 4.0 sec 2.15 MBytes 18.1 Mbits/sec 2) SRV's netstat output: l7# netstat -I em0 -w 1 input (em0) output packets errs bytes packets errs bytes colls 38630 0 4248702 1 0 206 0 35849 0 3943298 1 0 170 0 38264 0 4208994 1 0 170 0 36265 0 3989058 1 0 170 0 Is there any chance to get linux worked at least as fast, as freebsd-6.1 with small udp packets? Any help will be more than welcome! Please, CC: me, due to I'm not subscribed to netdev@vger.kernel.org. -- Boris B. Zhmurov System/Network Administrator mailto: bb@kernelpanic.ru "wget http://kernelpanic.ru/bb_public_key.pgp -O - | gpg --import"