Justin Piszcz
2007-Sep-29 18:11 UTC
[Samba] samba 3.0.26a-1 / Debian/Lenny sendfile(?) performance problems
Package: samba Version: 3.0.26a-1 Kernel: 2.6.22 samba 3.0.26a-1 performance < 900 KiB/s, but FTP = 30-90 MiB/s Let me start out by saing this is an oddball problem: SAMBA: LINUX -> WINDOWS = < 900 KiB/s (varies between 100 - 900 KiB/s) WINDOWS -> LINUX = 30-90 MiB/s (always) FTP: Either direction, 30-90 MiB/s (always) I do not see any nasty errors in the logs even with verbose = 5. Any ideas here? I am not using any special options. # cat /etc/samba/smb.conf [global] log level = 5 workgroup = WORKGROUP server string = %h - Pentium IV 3.4GHZ security = user encrypt passwords = true [user] comment = user path = /home/user writable = yes valid users = user create mask = 644 -- Here, FTP for pulling files from Linux. ftp> mget * 200 TYPE is now 8-bit binary 200 PORT command successful 150-Connecting to port 1255 150 715924.0 kbytes to download 226-File successfully transferred 226 13.687 seconds (measured here), 51.08 Mbytes per second ftp: 733106176 bytes received in 13.69Seconds 53562.23Kbytes/sec. 200 PORT command successful 150-Connecting to port 1256 150 716272.0 kbytes to download 226-File successfully transferred 226 13.032 seconds (measured here), 53.67 Mbytes per second ftp: 733462528 bytes received in 13.05Seconds 56216.95Kbytes/sec. 200 PORT command successful 150-Connecting to port 1257 150 713200.0 kbytes to download 226-File successfully transferred 226 12.869 seconds (measured here), 54.12 Mbytes per second ftp: 730316800 bytes received in 12.88Seconds 56723.63Kbytes/sec. Here, FTP for pushing files to Linux. ftp> mput 1 2 3 200 PORT command successful 150 Connecting to port 1263 226-File successfully transferred 226 12.802 seconds (measured here), 54.61 Mbytes per second ftp: 733106176 bytes sent in 12.80Seconds 57287.35Kbytes/sec. 200 PORT command successful 150 Connecting to port 1264 226-File successfully transferred 226 12.949 seconds (measured here), 54.02 Mbytes per second ftp: 733462528 bytes sent in 12.95Seconds 56624.92Kbytes/sec. 200 PORT command successful 150 Connecting to port 1265 226-File successfully transferred 226 15.400 seconds (measured here), 45.23 Mbytes per second ftp: 730316800 bytes sent in 15.38Seconds 47500.28Kbytes/sec. But (all I can offer is packet dumps/traces or bandwidth measurements): Incoming: Outgoing: Curr: 0.00 MByte/s Curr: 0.07 MByte/s Avg: 0.00 MByte/s Avg: 0.07 MByte/s Min: 0.00 MByte/s Min: 0.07 MByte/s Max: 0.00 MByte/s Max: 0.07 MByte/s Ttl: 1898.08 MByte Ttl: 2954.92 MByte LOCAL <-> REMOTE TXBPS RXBPS TOTALBPS (IP) PORT PROTO (IP) PORT TX RX TOTAL linuxbox <-> p4w.internal.lan 546k/s 4.74k/s 551k/s 192.168.0.1 445 TCP 192.168.0.2 1259 6.88m 106k 6.99m Why do I get such poor performance when trying to retrieve a file off the Linux box? This is a very strange problem. Linux: $ netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 14049682 0 0 0 11354070 0 0 0 BMRU lo 16436 0 45335 0 0 0 45335 0 0 0 LRU Windows: netstat -s IPv4 Statistics Packets Received = 5053597 Received Header Errors = 0 Received Address Errors = 19 Datagrams Forwarded = 0 Unknown Protocols Received = 0 Received Packets Discarded = 2 Received Packets Delivered = 5053595 Output Requests = 3655144 Routing Discards = 0 Discarded Output Packets = 0 Output Packet No Route = 0 Reassembly Required = 0 Reassembly Successful = 0 Reassembly Failures = 0 Datagrams Successfully Fragmented = 0 Datagrams Failing Fragmentation = 3 Fragments Created = 0 ICMPv4 Statistics Received Sent Messages 47 24 Errors 0 0 Destination Unreachable 25 2 Time Exceeded 0 0 Parameter Problems 0 0 Source Quenches 0 0 Redirects 0 0 Echos 0 22 Echo Replies 22 0 Timestamps 0 0 Timestamp Replies 0 0 Address Masks 0 0 Address Mask Replies 0 0 TCP Statistics for IPv4 Active Opens = 204 Passive Opens = 14 Failed Connection Attempts = 16 Reset Connections = 59 Current Connections = 3 Segments Received = 5051709 Segments Sent = 3654327 Segments Retransmitted = 76 UDP Statistics for IPv4 Datagrams Received = 1826 No Ports = 58 Receive Errors = 3 Datagrams Sent = 716 Justin.
Justin Piszcz
2007-Sep-29 18:21 UTC
[Samba] samba 3.0.26a-1 / Debian/Lenny sendfile(?) performance problems
Package: samba Version: 3.0.26a-1 One note to add: I remember seeing this bug on my old system as well, so I do not think it is hardware related. Justin.
Justin Piszcz
2007-Sep-29 18:38 UTC
[Samba] 2.6.22/realtek bug in hardware, any kernel work-around?
Package: samba Version: 3.0.26a-1> > Kernel: 2.6.22 > > samba 3.0.26a-1 performance < 900 KiB/s, but FTP = 30-90 MiB/s > > Let me start out by saing this is an oddball problem: > > SAMBA: > LINUX -> WINDOWS = < 900 KiB/s (varies between 100 - 900 KiB/s) > WINDOWS -> LINUX = 30-90 MiB/s (always) > > FTP: > Either direction, 30-90 MiB/s (always) > > I do not see any nasty errors in the logs even with verbose = 5. > > Any ideas here? I am not using any special options. > > # cat /etc/samba/smb.conf > > [global] > log level = 5 > workgroup = WORKGROUP > server string = %h - Pentium IV 3.4GHZ > security = user > encrypt passwords = true > > [user] > comment = user > path = /home/user > writable = yes > valid users = user > create mask = 644 > > -- > > Here, FTP for pulling files from Linux. > > ftp> mget * > 200 TYPE is now 8-bit binary > 200 PORT command successful > 150-Connecting to port 1255 > 150 715924.0 kbytes to download > 226-File successfully transferred > 226 13.687 seconds (measured here), 51.08 Mbytes per second > ftp: 733106176 bytes received in 13.69Seconds 53562.23Kbytes/sec. > 200 PORT command successful > 150-Connecting to port 1256 > 150 716272.0 kbytes to download > 226-File successfully transferred > 226 13.032 seconds (measured here), 53.67 Mbytes per second > ftp: 733462528 bytes received in 13.05Seconds 56216.95Kbytes/sec. > 200 PORT command successful > 150-Connecting to port 1257 > 150 713200.0 kbytes to download > 226-File successfully transferred > 226 12.869 seconds (measured here), 54.12 Mbytes per second > ftp: 730316800 bytes received in 12.88Seconds 56723.63Kbytes/sec. > > Here, FTP for pushing files to Linux. > > ftp> mput 1 2 3 > 200 PORT command successful > 150 Connecting to port 1263 > 226-File successfully transferred > 226 12.802 seconds (measured here), 54.61 Mbytes per second > ftp: 733106176 bytes sent in 12.80Seconds 57287.35Kbytes/sec. > 200 PORT command successful > 150 Connecting to port 1264 > 226-File successfully transferred > 226 12.949 seconds (measured here), 54.02 Mbytes per second > ftp: 733462528 bytes sent in 12.95Seconds 56624.92Kbytes/sec. > 200 PORT command successful > 150 Connecting to port 1265 > 226-File successfully transferred > 226 15.400 seconds (measured here), 45.23 Mbytes per second > ftp: 730316800 bytes sent in 15.38Seconds 47500.28Kbytes/sec. > > But (all I can offer is packet dumps/traces or bandwidth measurements): > > Incoming: Outgoing: > Curr: 0.00 MByte/s Curr: 0.07 MByte/s > Avg: 0.00 MByte/s Avg: 0.07 MByte/s > Min: 0.00 MByte/s Min: 0.07 MByte/s > Max: 0.00 MByte/s Max: 0.07 MByte/s > Ttl: 1898.08 MByte Ttl: 2954.92 MByte > > LOCAL <-> REMOTE TXBPS RXBPS > TOTALBPS > (IP) PORT PROTO (IP) PORT TX RX > TOTAL > linuxbox <-> p4w.internal.lan 546k/s 4.74k/s 551k/s > 192.168.0.1 445 TCP 192.168.0.2 1259 6.88m 106k 6.99m > > Why do I get such poor performance when trying to retrieve a file off the > Linux box? This is a very strange problem. > > Linux: > > $ netstat -i > Kernel Interface table > Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR > Flg > eth0 1500 0 14049682 0 0 0 11354070 0 0 0 > BMRU > lo 16436 0 45335 0 0 0 45335 0 0 0 > LRU > > Windows: > > netstat -s > > IPv4 Statistics > > Packets Received = 5053597 > Received Header Errors = 0 > Received Address Errors = 19 > Datagrams Forwarded = 0 > Unknown Protocols Received = 0 > Received Packets Discarded = 2 > Received Packets Delivered = 5053595 > Output Requests = 3655144 > Routing Discards = 0 > Discarded Output Packets = 0 > Output Packet No Route = 0 > Reassembly Required = 0 > Reassembly Successful = 0 > Reassembly Failures = 0 > Datagrams Successfully Fragmented = 0 > Datagrams Failing Fragmentation = 3 > Fragments Created = 0 > > ICMPv4 Statistics > > Received Sent > Messages 47 24 > Errors 0 0 > Destination Unreachable 25 2 > Time Exceeded 0 0 > Parameter Problems 0 0 > Source Quenches 0 0 > Redirects 0 0 > Echos 0 22 > Echo Replies 22 0 > Timestamps 0 0 > Timestamp Replies 0 0 > Address Masks 0 0 > Address Mask Replies 0 0 > > TCP Statistics for IPv4 > > Active Opens = 204 > Passive Opens = 14 > Failed Connection Attempts = 16 > Reset Connections = 59 > Current Connections = 3 > Segments Received = 5051709 > Segments Sent = 3654327 > Segments Retransmitted = 76 > > UDP Statistics for IPv4 > > Datagrams Received = 1826 > No Ports = 58 > Receive Errors = 3 > Datagrams Sent = 716 > > > Justin. > > -- > To unsubscribe from this list go to the following URL and read the > instructions: https://lists.samba.org/mailman/listinfo/samba >Looks like it is hardware related after all: http://forums.gentoo.org/viewtopic-p-2820556.html http://ubuntuforums.org/showthread.php?t=531505 http://www.fedoraforum.org/forum/showthread.php?p=452451 One poster wrote "I got similar problems:" http://forums.gentoo.org/viewtopic-t-570392.html http://forums.gentoo.org/viewtopic-t-389449-postdays-0-postorder-asc-start-25.html?sid=4251f92bbc6db32fd200c4ea0ea9c9be I found out that poor smb performance is related to a broken udp-perfomance of the 8169 NIC in outgoing udp. But, only in Gb Mode of the 8169 NIC, with 100Mbps it is ok. http://forums.gentoo.org/viewtopic-t-570392.html I have: 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01) 04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01) That must be the issue, time to buy an Intel PCI-e NIC if I want better performance with samba in Linux. I do have another one of these motherboards (ABIT AW9D-MAX) running XP and it does not seem to suffer from this problem, I guess the [proprietary? Realtek driver does not suffer from this bug]? Justin.
Guenter Kukkukk
2007-Sep-30 22:44 UTC
[Samba] samba 3.0.26a-1 / Debian/Lenny sendfile(?) performance problems
Am Samstag, 29. September 2007 20:00 schrieb Justin Piszcz:> Package: samba > Version: 3.0.26a-1 > > Kernel: 2.6.22 > > samba 3.0.26a-1 performance < 900 KiB/s, but FTP = 30-90 MiB/s > > Let me start out by saing this is an oddball problem: > > SAMBA: > LINUX -> WINDOWS = < 900 KiB/s (varies between 100 - 900 KiB/s) > WINDOWS -> LINUX = 30-90 MiB/s (always) > > FTP: > Either direction, 30-90 MiB/s (always) > > I do not see any nasty errors in the logs even with verbose = 5. > > Any ideas here? I am not using any special options. > > # cat /etc/samba/smb.conf > > [global] > log level = 5 > workgroup = WORKGROUP > server string = %h - Pentium IV 3.4GHZ > security = user > encrypt passwords = true > > [user] > comment = user > path = /home/user > writable = yes > valid users = user > create mask = 644 > > -- > > Here, FTP for pulling files from Linux. > > ftp> mget * > 200 TYPE is now 8-bit binary > 200 PORT command successful > 150-Connecting to port 1255 > 150 715924.0 kbytes to download > 226-File successfully transferred > 226 13.687 seconds (measured here), 51.08 Mbytes per second > ftp: 733106176 bytes received in 13.69Seconds 53562.23Kbytes/sec. > 200 PORT command successful > 150-Connecting to port 1256 > 150 716272.0 kbytes to download > 226-File successfully transferred > 226 13.032 seconds (measured here), 53.67 Mbytes per second > ftp: 733462528 bytes received in 13.05Seconds 56216.95Kbytes/sec. > 200 PORT command successful > 150-Connecting to port 1257 > 150 713200.0 kbytes to download > 226-File successfully transferred > 226 12.869 seconds (measured here), 54.12 Mbytes per second > ftp: 730316800 bytes received in 12.88Seconds 56723.63Kbytes/sec. > > Here, FTP for pushing files to Linux. > > ftp> mput 1 2 3 > 200 PORT command successful > 150 Connecting to port 1263 > 226-File successfully transferred > 226 12.802 seconds (measured here), 54.61 Mbytes per second > ftp: 733106176 bytes sent in 12.80Seconds 57287.35Kbytes/sec. > 200 PORT command successful > 150 Connecting to port 1264 > 226-File successfully transferred > 226 12.949 seconds (measured here), 54.02 Mbytes per second > ftp: 733462528 bytes sent in 12.95Seconds 56624.92Kbytes/sec. > 200 PORT command successful > 150 Connecting to port 1265 > 226-File successfully transferred > 226 15.400 seconds (measured here), 45.23 Mbytes per second > ftp: 730316800 bytes sent in 15.38Seconds 47500.28Kbytes/sec. > > But (all I can offer is packet dumps/traces or bandwidth measurements): > > Incoming: Outgoing: > Curr: 0.00 MByte/s Curr: 0.07 MByte/s > Avg: 0.00 MByte/s Avg: 0.07 MByte/s > Min: 0.00 MByte/s Min: 0.07 MByte/s > Max: 0.00 MByte/s Max: 0.07 MByte/s > Ttl: 1898.08 MByte Ttl: 2954.92 MByte > > LOCAL <-> REMOTE TXBPS RXBPS TOTALBPS > (IP) PORT PROTO (IP) PORT TX RX TOTAL > linuxbox <-> p4w.internal.lan 546k/s 4.74k/s 551k/s > 192.168.0.1 445 TCP 192.168.0.2 1259 6.88m 106k 6.99m > > Why do I get such poor performance when trying to retrieve a file off the Linux box? This is a very strange problem. > > Linux: > > $ netstat -i > Kernel Interface table > Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR > Flg > eth0 1500 0 14049682 0 0 0 11354070 0 0 0 BMRU > lo 16436 0 45335 0 0 0 45335 0 0 0 LRU > > Windows: > > netstat -s > > IPv4 Statistics > > Packets Received = 5053597 > Received Header Errors = 0 > Received Address Errors = 19 > Datagrams Forwarded = 0 > Unknown Protocols Received = 0 > Received Packets Discarded = 2 > Received Packets Delivered = 5053595 > Output Requests = 3655144 > Routing Discards = 0 > Discarded Output Packets = 0 > Output Packet No Route = 0 > Reassembly Required = 0 > Reassembly Successful = 0 > Reassembly Failures = 0 > Datagrams Successfully Fragmented = 0 > Datagrams Failing Fragmentation = 3 > Fragments Created = 0 > > ICMPv4 Statistics > > Received Sent > Messages 47 24 > Errors 0 0 > Destination Unreachable 25 2 > Time Exceeded 0 0 > Parameter Problems 0 0 > Source Quenches 0 0 > Redirects 0 0 > Echos 0 22 > Echo Replies 22 0 > Timestamps 0 0 > Timestamp Replies 0 0 > Address Masks 0 0 > Address Mask Replies 0 0 > > TCP Statistics for IPv4 > > Active Opens = 204 > Passive Opens = 14 > Failed Connection Attempts = 16 > Reset Connections = 59 > Current Connections = 3 > Segments Received = 5051709 > Segments Sent = 3654327 > Segments Retransmitted = 76 > > UDP Statistics for IPv4 > > Datagrams Received = 1826 > No Ports = 58 > Receive Errors = 3 > Datagrams Sent = 716 > > > Justin. >Hi Justin, are Realtek GBit network cards (or similar Realtek mainboard chips) used inside your network? If so, try using a different netword card - and test again. If that fixes the performance problem, please report back the failing card (or chipset), so the kernel developers can have a closer look. Cheers, Guenter