4

I have got a question for someone that knows BSD a bit better than me that are in regards to my LAN setup at home/work here outside Chicago.

I can't seem to fully optimize my network's (LAN) thoughput via my FreeNAS (BSD based) file server. It runs with the latest FreeBSD release which is modified to support several protocols for file transfers and more. Every machine that is behind my Smoothwall (Linux based) router is on the usual 192.168.0.x subnet and for most part works just fine. Behind the Smoothwall box, all machines are connected to a GB HP unmanaged switch. I host a large WISP here and have an OC-3 connection here at home/work and have no issues with downloading/uploading from/to the 'net'.

My problem is with throughput. When I try and transfer large files...really any for that matter..between any of the machines to/and from the FreeNAS server via FTP, the max throughput I can achieve say between a Win 7 or a Linux box is ~65Mbit/sec. All machines are running Intel Pro 1000 GB NIC's and all cable is CAT6. Each is set to 'auto negotiation' and each shows 1500 MTU Full Duplex @1GB so I know the hardware is okay. I have not adjusted the MTU on any machine as I understand it to be pointless unless certain configurations are used (I assume I am not one of those). My settings for the FreeNAS machine are the following:

# FreeNAS /etc/sysctl.conf  - pertinent settings shown

kern.ipc.maxsockbuf=262144
kern.ipc.nmbclusters=32768
kern.ipc.somaxconn=8192
kern.maxfiles=65536
kern.maxfilesperproc=32768
net.inet.tcp.delayed_ack=0
net.inet.tcp.inflight.enable=0
net.inet.tcp.path_mtu_discovery=0
net.inet.tcp.recvbuf_auto=1
net.inet.tcp.recvbuf_inc=524288
net.inet.tcp.recvbuf_max=16777216
net.inet.tcp.recvspace=65536
net.inet.tcp.rfc1323=1
net.inet.tcp.sendbuf_inc=16384
net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.sendspace=65536
net.inet.udp.recvspace=65536
net.local.stream.recvspace=65536
net.local.stream.sendspace=65536
net.inet.tcp.hostcache.expire=1

From what I can tell, that looks to be a somewhat optimized profile for a typical BSD machine acting as a server for a LAN. I might be wrong and just wanted to find out from someone that knows BSD better than I do if indeed that is ok or if something is out of tune or what. Are there other ways I would find better for P2P file transfers?

I honestly do not know what I SHOULD be looking for with respect to throughput between the NAS box and another client when xferring files via FTP, but I am told that what I get on average (40-70MB/sec) is too low for what it could be.

I have thought about adding another NIC in the FreeNAS box as well as the Win7 machine and use a X-over cable via a static route, but wanted to check with someone first to see if that might be worth it or not. I don't know if doing that would bypass the HP GB switch and allow for a machine to machine xfer anyways.

The FTP client I use is: Filezilla and have tried both active and passive modes with no real gain over each other. The NAS box runs ProFTPD.

voretaq7
  • 79,879
  • 17
  • 130
  • 214
  • 1
    Are you seeing any Ethernet/TCP error-rate on any of the hosts? You may have a faulty controller in the FreeBSD machine. – Kyle Smith Oct 16 '09 at 20:09
  • 1
    What transfer rate to you get between other systems? Have you tried another method than FTP? There are limitations due to protocol overhead and application performance that may be in play as well. Are you sure it's the network that the bottleneck and not the disk subsystem or some other component. Do all network systems support jumbo frames? – kevintechie Oct 16 '09 at 20:22
  • I'd be thinking there's some issue between the Nic and Hub ports - what happens if you change ports for the FreeBSD box and if you fix change the nic settings to 1Gbit\Full (rather than auto-neg) does it improve? – Helvick Oct 16 '09 at 20:25
  • 1
    Are you really only getting around 6.5MByte/s? I assume you have fast disks and ample RAM for caching? Also, if you're using software RAID, which type? That seems to have a rather large impact on performance in my tests. – Timo Geusch Oct 20 '09 at 15:56
  • How fast is the read speed on the same file off the disk, without any network in the process? Lots of current-day hard drives have speed of about 70MB/sec for sequential reads, so maybe you're just bottlenecked on the disk? – Marcin Nov 28 '11 at 17:55
  • 1
    As someone that runs a WISP, I should really hope that you know the difference between GB and Gb. You should double check your question and correct all instances of your units being improperly capitalized. It makes a big difference, by a factor of 8 to be exact. – MDMarra Nov 28 '11 at 18:04

1 Answers1

1

This questions seems to have gone stale, but there are a number of great suggestions in the comments which might resolve the problem. In addition, the FreeBSD Handbook has an entire section on performance tuning (updated with each new release, and always reasonably current information / good advice).

Should none of the above help it may also be worthwhile to try a direct network speed test (use netcat to send a large stream of bytes and determine the network throughput) -- This will make it possible to determine if the poor performance is network related (and allow you to test the network in stages: Crossover cable, through the switch, etc.) or coming from another source like disk latency.

voretaq7
  • 79,879
  • 17
  • 130
  • 214