Slashdot Mirror


Finding the Bottleneck in a Gigabit Ethernet LAN?

guroove asks: "I have a small gigabit ethernet network at home, and I spent a lot of money getting gigabit NICs for all my computers and even bought cat 6 cabling. I only have 3 computers on the gigabit network (a Mac, a Windoze machine, and a Linux box) so instead of getting a switch, I triple NIC'd the Linux box, which I use as a gateway and a file server. After the network was complete, I wasn't satisfied with transfer rates, so I started a transfer of a very large file and found that the transfer rate was topping off at just over 145 Mbps (which is a far cry from 1000 Mbps). I'm wondering now where my bottleneck is. Is it the NICs? Are all gigabit NICs really giving us 1000 megabits per second? Is it the driver? Is it Samba? Could it be that the hard drives aren't fast enough? Does anyone have experience with gigabit home networking enough to know where the bottlenecks are? Does the current PCI technology even allow for bandwidth that high"

100 comments

  1. the gateway? by Prowl · · Score: 3, Funny

    tell me the linux machine's not an old 486 you had lying under the stairs...

    --
    That man tried to kill mah Daddy
    1. Re:the gateway? by trmatthe · · Score: 1

      Are your 3 NICS on the same PCI bus ? If it's a plain PCI bus then remember the PCI bandwidth limitation.

      If it's PCI-X or similar then ok, look elsewhere.

      I'd go for ASIC based hardware (i.e. GB switch)

      Sorry !

      --
      Yeah right...
  2. The Linux machine is acting as a router ? by bungeejumper · · Score: 5, Insightful

    It is "entirely possible" that the Linux machine is acting as a router, switching all your traffic in C code. Not to mention it is probably sending traffic up and down the PCI bus, once at ingress and once at egress. The lookup of the IP destination address is probably using a whole lot of memory bandwidth, and if it's at all like a regular router, it's probably doing a full IP header Sanity check (using the IP CRC), version number and TTL decrement. After the TTL decrement, you would need to recompute the CRC. I would say the Linux machine is your bottleneck. Unless you could somehow get it configured as an ethernet switch, rather than a Layer 3 router.

    1. Re:The Linux machine is acting as a router ? by Jahf · · Score: 5, Informative

      Agreed.

      While there are a number of Linux based routers out there, none that I know of are used in the Gigabit realm. Even if they are, they at the -very- least have recompiled the kernel to switch on a number of router/gateway optimizations ... and quite possibly contain proprietary network / NIC kernel modules to further gain improvements.

      Unless you have a VERY modern bus architecture (alot of people using Linux routers do so on old gear), preferably an AMD with hyperthreading (since I doubt you have a non-x86 system or you'd have mentioned it), you will never get close to maximizing not one but -3- Gb NICs.

      Take a look at some of the servers that are out there in the x86 realm. They usually require you to use a 100MHz or 133MHz PCI card to get best results from a Gb ethernet NIC. And if you look at the first generation of x86 servers (say, from 2 years ago) that came with Gb ports by default, looking deep into the benchmarks you often find that they never reached their Gb potential with the built-in ports either. The advantage was that it was still better than 100 Megabit.

      With a hyperthreaded high-speed bus and some kernel tweaks, I would be quite happy if I could get all 3 NICs to stress-test simultaneously at 300-500Mb/each. Heck, I'd probably be happy around the 250Mb range.

      BTW, even a Gb switch, on the home CPE level, is probably never going to send multi-Gb of data (ie, by trying to switch data amongst multiple Gb ports). Often times you are limited to a max of 1Gb total throughput because of the switched backplane. Heck, even then you may max around 900Mb due to network overhead.

      Moral is simply to realize that with all networking products, the real speed is usually significantly less than the rated speed.

      --
      It is more productive to voice thoughtful opinions (reply) than to judge (moderate) others.
    2. Re:The Linux machine is acting as a router ? by imroy · · Score: 1
      ...get it configured as an ethernet switch, rather than a Layer 3 router.

      The poster didn't say how he had the cards connected together. My understanding is that he could make a layer 2 switch by bridging all the ethernet interfaces. It'd cut down on all the IP routing overhead. Still, I'd recommend getting a dedicated Gigabit switch. The PCI bus just wasn't meant to handle this amount of traffic.

    3. Re:The Linux machine is acting as a router ? by Fweeky · · Score: 3, Informative

      Intel do Hyperthreading, not AMD. The buzzword there is Hypertransport, which significantly ups the speed of memory and device access; a lot of motherboards with Gigabit onboard now attach them directly to the 800/1000MHz Hypertransport bus, which can easily keep up.

    4. Re:The Linux machine is acting as a router ? by Jahf · · Score: 1

      Sorry, thank you ... absolutely right. And I should have known better because the whole time I was desparately wanting to type "the bus technology that DEC developed for the Alpha" :) I definitely think a modern MoBo with Hypertransport and multiple onboard Gb NICs would work, but it is probably not the solution this poster had.

      Since the poster was using additional NICs from the way I read it, Hypertransport still wouldn't help though, so maybe I should have left those pieces out.

      Either way, the poster didn't put enough details to really be able to help.

      --
      It is more productive to voice thoughtful opinions (reply) than to judge (moderate) others.
  3. Bottleneck by ArmorFiend · · Score: 2, Interesting

    Well, the way to find the bottleneck is obvious. First try a transfer from linux to the mac. Then try a transfer from linux to the peecee. If both of those are fast transfers, then its time to start thinking about your linux box's bus. If one is fast and one is slow, go to town on the slow leg.

    Putting 2 peer links in the linux box seems like it might have been a mistake, since you're now not able to add new computers without buying new nics for the linux box. Buying a hub might have been better, but what do I know? Maybe gigabit nics cost $1 and hubs cost $1,000.

    1. Re:Bottleneck by Anonymous Coward · · Score: 0

      Putting 2 peer links in the linux box seems like it might have been a mistake, since you're now not able to add new computers without buying new nics for the linux box

      well, actually, if you have some (one or two) extra NICs at home (installed in linux box) is good thing when you want to add some extra boxes to GBit network. you just take NIC from linux box and put it into extra computer, then walk to nearest HW shop, and get that GBit Switch.

      GBit switches are $100+ and NICs start below $30
      so buying extra NIC before Switch might have been good choice.

    2. Re:Bottleneck by Anonymous Coward · · Score: 0

      well actually you wouldnt want a hub either because of the nature of what a hub does. Switches are always better than a hub.

    3. Re:Bottleneck by ArmorFiend · · Score: 1

      What do you mean? What is the difference between a switch and a hub?

  4. Not too shabby. by Profane+MuthaFucka · · Score: 2, Insightful

    Your speed is also dependent on protocol, driver, and OS overhead. Check those things before you worry about such a simple hardware setup.

    You didn't give any information about your protocol so that leads me to believe that you haven't considered TCP vs. UDP, for example.

    --
    Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
    1. Re:Not too shabby. by Anonymous Coward · · Score: 0

      You really think he might be running UDP around his house? Outside of networking experimentation, I can't believe he would be doing that.

  5. are you talking about bits or bytes? by missing000 · · Score: 2, Insightful

    a gigabit 128 megabytes

    If you are getting 145 megabytes / second, that's damn good.

    1. Re:are you talking about bits or bytes? by guroove · · Score: 1

      Yeah, I had this part figured out already. It was actually getting sustained speeds of about 13 or 14 MB/sec and peaks around 18. I think that it is the hard drive which is an ATA/133.

      --
      Someone stole my old sig.
    2. Re:are you talking about bits or bytes? by Anonymous Coward · · Score: 0

      As long as the file is less than the amount of free memory, just run the test a second time and the hard drive won't slow it down.

    3. Re:are you talking about bits or bytes? by JDizzy · · Score: 1

      Which is why all serrious through-put test are conducted with raid hardware. Even though, have you tested the rate of transfer from the hdd to another local htt on the linux box?

      --
      It isn't a lie if you belive it.
    4. Re:are you talking about bits or bytes? by BrianRaker · · Score: 1

      hdparm -tT /dev/hdX

      Run this on each of your drives, replacing hdX with the appropriate designator. This ~should be~ your maximal thruput to your NIC, unless you are testing individual drives on a SoftRAID setup.

      --
      As I walk through the valley of death I fear no one, for I am the meanest sonova bitch in the valley!
  6. Maybe something besides samba by Student_Tech · · Score: 4, Informative

    I found that unless both machines were of a recent vintage, samba seems to hit a limit. Exmaple being my current computer AMD 2400XP running Linux 2.4.24, to a AMD 500 K6-2 running Linux 2.4.20 tops off about 1 MB sec on a 100 Mb/sec network. Contrast my current computer (2400 one) to a friends 2600XP running Win2K, I was seeing about 6-7 MB/sec. (and a 25% CPU usage...)

    I have found that FTP seems to use the bandwidth up better if you want to test it. Computer xbox I can get 7-9 MB/sec on a 100 Mb/sec connection.

    You might also look into some network bandwidth tools that just go to and from memory and are designed for testing network speeds.

    1. Re:Maybe something besides samba by Curtman · · Score: 2, Interesting
      Just out of curiosity.. I thought I'd do a little benchmark on my completely unoptimized out of the box NFS server, vs an equally unoptimized samba over my 100MB Baystar 350 switch.

      I created a testfile:
      • dd if=/dev/urandom bs=1M count=500 of=testfile

      • 500+0 records in
        500+0 records out


      Copied the file to another box over NFS:
      • sync; THETIME=`date +%M:%S:%N`; cp testfile /mnt/video/ -v ; sync; THETIME2=`date +%M:%S:%N`; echo -e "$THETIME2\n$THETIME"
      `testfile' -> `/mnt/video/testfile' 40:26:402691000 39:26:956812000 = ~60s

      Then deleted, and sent the same file over samba to the same drive:
      • sync; THETIME=`date +%M:%S:%N`; cp testfile /mnt/video/ -v ; sync; THETIME2=`date +%M:%S:%N`; echo -e "$THETIME2\n$THETIME"

      • `testfile' -> `/mnt/video/testfile'
        53:09:727205000
        50:53:194652000 = ~136s


      I had suspected samba would be slower, but thats an order of magnitude slower. Did I do something wrong, or is the difference really that large? I repeated the test afterwards and got very nearly the same results.
    2. Re:Maybe something besides samba by DeComposer · · Score: 1

      136/60 10

      --


      Karma
    3. Re:Maybe something besides samba by Curtman · · Score: 1

      Sorry, I lost my Slashdot decoder wheel. What's that?

    4. Re:Maybe something besides samba by Oculus+Habent · · Score: 1

      I believe the indicated meaning is:
      136 / 60 != 10 (order of magnitude)

      It's 2.26 times faster or 56% slower.

      --
      That what was all this school was for... to teach us how to solve our own problems. -- janeowit
    5. Re:Maybe something besides samba by aminorex · · Score: 1

      It's an order of magnitude, base 2.

      --
      -I like my women like I like my tea: green-
  7. Megabit or Megabytes? by wpc4 · · Score: 0, Redundant

    1000 megabits would = about 125 megabytes (1000/8). If you are getting 145 megabits a second that would be about 18 megabytes a second and would be very horrible speeds. If on the other hand you are getting 145 megabytes a second you are doing pretty damn good I think.

  8. How about checking the HD's on either end? by _LORAX_ · · Score: 5, Insightful

    Um... how about the obvious. How fast is the Hard Drives in both computers? 145Mbps = ~18MB/s which is approaching the sustained limit for many ATA100/133 drives these day.

    So I would start there.

    1. Re:How about checking the HD's on either end? by thenerdgod · · Score: 3, Informative

      I agree. "copying a large file only moves at ~18MB/s.. why aren't I getting 80MB/s?!!!1" is kind of a stupid question. If you want to run a speed test, repeatedly copy a smaller file that your linux box can cache in memory, over and over again so you _KNOW_ it's cached. Make sure the file can fit inside whatever linux says your average 'cached' memory load is. Then get and re-get it and see how fast it gets. I'll bet that done right, you can get probably 45MB/s sustained.

      The other thing is that you have to look at your PCI bus. If you're using 32-bit PCI66, I think 200MB/s (or thereabout) is your max speed. And that's sustained write as bus master. now with your IDE controller and 3(!) Gigabit NICs, that's going to be cut by, say, 1/2 to (say) 1/4 depending.

      You're kind of complaining "My speedometer goes to 140, but my car only gets up to 98 before the tires fly off!" ...don't confuse "theoretical maximum" with "real-world use"

    2. Re:How about checking the HD's on either end? by guroove · · Score: 2, Informative

      Looks like you hit it on the head. I am using an ATA/133 hard drive. I'm actually in the process of setting up a hardware RAID for the hard drives to see if that speeds things up at all.

      --
      Someone stole my old sig.
    3. Re:How about checking the HD's on either end? by Carnildo · · Score: 1

      Can you try a transfer from /dev/zero on one box to /dev/null on the other?

      --
      "They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.
    4. Re:How about checking the HD's on either end? by Anonymous Coward · · Score: 0

      Try ramfs first.

    5. Re:How about checking the HD's on either end? by Matthias+Wiesmann · · Score: 4, Informative

      Why not use iperf, which is meant for this usage?

    6. Re:How about checking the HD's on either end? by Anonymous Coward · · Score: 0

      ahem. Unless you're using this linux "router" as a fileserver or a proxy cache then you probably don't need to worry about hard drive performance as far as routing goes.

      As far as copying two files from one computer to another over a network the bottleneck is not your router. It's one of the two computers that are copying. If you want to utilize the full bandwidth of your network you'd need to upgrade all of your workstations to RAID, not your router. Your router routes packets like a mother****** all in memory. The sending computer can't read 1gbps and the receiving computer can't write at 1gbps. THAT is your bottleneck.

    7. Re:How about checking the HD's on either end? by klevin · · Score: 2, Informative

      Yep. Never underestimate the ability of limited harddrive speeds to throw a wrench in file transfer speeds. I first ran across this while developing the Linux network driver for LSI's 1Gb & 2Gb Fibre Channel adapters. Spent a little while pulling hair before the whole "IDE drives on either end of a 2 Gigabit link might be an issue" point hit me. I found this to be an issue even while reading from and writing to 10K RPM FC drives. Had to use an FC RAID on both ends before I could saturate the network capacity with file transfers between only two systems.

      If you really want to see what your network is capable of handling in raw bandwidth, try running large packet flood pings between each host. As a side note, this will also hammer the heck out of the corresponding network stacks.

    8. Re:How about checking the HD's on either end? by WuphonsReach · · Score: 1

      On a motherboard that is 2 years old, copying from drive to drive (large video files), I'll see rates of anywhere from 40-45 MB/s. That's with 7200rpm SATA/PATA drives. Copying from a 5400rpm 150GB drive is a solid 30MB/s.

      Shooting across the gigabit LAN, those rates drop to 15-20 MB/s. That's with cheap, consumer level hardware on both sides, copying to/from a Windows share.

      Still quite acceptable, since the switch could easily be handling multiple streams between different boxes. At least I'm not stuck with the old 8MB/s limit of a 10/100 network.

      --
      Wolde you bothe eate your cake, and have your cake?
  9. All sorts of issues could be happening. by ComputerSlicer23 · · Score: 2, Interesting
    You could be running out of disk bandwidth.

    I have several harddrives that top out around 14-20Megabytes per second, which turns into roughly the speed rating you are talking about.

    I doubt your running out of PCI bandwidth.

    It could be the latency, or that you have a poorly tuned network stack. I know that using NFS, getting 12-15Mbit/sec was considered pretty good given the inherient latency of the protocol.

    I had similar problems no matter what protocol I was using FTP, HTTP, or scp. What I found was that, I needed to use a network speed tool: NPtcp, which is part of the netpipe tool set.

    http://www.scl.ameslab.gov/Projects/old/ClusterCoo kbook/nprun.html

    The other thing is to figure out if your cards support Jumbo frames. If they do, it can be a boon to go change your MTU, and modify specific parameters in your TCP stack, and in your application to change the socket options used (specifically, to use a packet size larger then 8k). I'm not sure how to do this under windows, but I've found it readily available under Linux on google searches.

    More information is more useful. Knowing what chipset it is based off of, which drivers you are using, what OS, would be mighty helpful to helping you solve your problem.

    Kirby

    1. Re:All sorts of issues could be happening. by algae · · Score: 1

      It's actually pretty likely that he *is* running out of PCI bandwidth.

      Three Gigabit/s NICs on a PCI bus ... let's see, the PCI bus is 32 bits times 33MHz, which is almost exactly 1Gb/s, so a single GB NIC could actually saturate the bus all by itself running optimally. Add in the other two NICs, the IDE or SCSI bus, and misc other peripherals, and it's very easy to bottleneck at the PCI.

      This is why most modern motherboards build the GB directly onto the northbridge.

      --
      Causation can cause correlation
    2. Re:All sorts of issues could be happening. by Glonoinha · · Score: 1

      Sorry, but I'm going to have to go with 'What is the throughput of his hard drives?' for $400, Alex.

      CPU faster than BUS faster memory faster than hard drive. The gigabit NIC fits in there somewhere between memory and bus, and on different systems you can interchange memory and bus for faster / slower - but the CPU is generally fastest, and the hard drive generally slowest.

      --
      Glonoinha the MebiByte Slayer
    3. Re:All sorts of issues could be happening. by ComputerSlicer23 · · Score: 1
      Sure a Gigabit card could completely saturate a PCI bus. I'm well aware that's why they are built into the northbridge.

      However, generally when benchmarking one doesn't actually use both the Gbit NIC's (he's a double idiot if he failed to mention this). From the setup, he's got something silly going on. As a general rule, the NIC and the harddrive will need to use up roughly the same about of PCI bandwidth (they are writting roughly the same amount of data, plus or minus framing/headers for the frames/sectors). 140Mbit/s * 2 = 280Mbit per second. So your telling me the "other misc" peripherals are using up 2-3 times the PCI bandwidth of a Gbit card and a harddrive running flat out? What else do you have hooked up to your machine?

      More likely, he's running out of CPU, interrupts (they are queuing up faster then they can be serviced), or scalability in the kernel somewhere else, long, long before he's running out of PCI bandwidth. You took the two biggest PCI bandwidth hogs on his machine and showed they used up possibly a fourth, (maybe even a third if you throw in lots of overhead) of the PCI bandwidth, and then claim the "extra stuff", takes up the rest. I'm not buying it.

      I'd hear what your saying, if it wasn't just silly. You can't even get close to the Gigabit thru put if you don't have a 800Mhz machine (he doesn't say how fast his machines are). I'm not sure if that uses up all the CPU power of the machine or not.

      I've had exactly the problem he describes over NFS with 2.4Ghz Xeon's machines with Gigabit cards on the Northbridge. In the end, it was that NFS protocol has latency in it. In Ethernet parlance, the sliding window is too small. So while I could easily in aggregate get a Gigabit of bandwidth in a number of connections, I could never get a gigabit of bandwidth in a single connection. I wouldn't be shocked if this is also the case with Samba.

      I could put about 500Mbit/sec over the cards via NPtcp, but for a standard file transfer over NFS, I couldn't exceed about 14-15Mbyte/sec, which is ~ 120Mbit/sec. You want to get the harddrives, and the PCI contention out of the loop to see what the problem is. Run NPtcp on both ends, check what the maximum thru put is. That'll give you a good number to start with to see how much data your machine can actually push over the wire. From there, it's easier to start creating artificial contention and CPU usage to see what could be causing the problems. If you believe it to be the PCI bus, you can fiddle with the timings of the PCI bus to enhance the bus utilization. Read up on it here: http://www-106.ibm.com/developerworks/linux/librar y/l-hw2.html

      It's down at the bottom.

      Kirby

  10. Use Iperf to test network bandwidth by bohnsack · · Score: 3, Informative

    I might be good to start by measuring your network's performance, without hard drives or application software in the loop. I'd suggest using IPerf to accomplish this. If you measure less than expected performance with IPerf, your problem is with your NICs, switch, or drivers. If IPerf reports OK numbers, start looking at Samba and your hard drives. The bus shouldn't be a problem, because even a lowly 32 bit 33 MHz PCI bus has a theoretical 1.056 Gb/s data rate.

    1. Re:Use Iperf to test network bandwidth by bohnsack · · Score: 5, Informative

      Using IPerf to test your network bandwidth is easy:

      [machine1]# iperf -s
      Server listening on TCP port 5001
      TCP window size: 85.3 KByte (default)
      [ ID] Interval Transfer Bandwidth
      [ 4] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec

      [machine2]# iperf -c machine1
      Client connecting to machine1, TCP port 5001
      TCP window size: 16.0 KByte (default)
      [ ID] Interval Transfer Bandwidth
      [ 3] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec

      This, ~950 Mb/s, is around what you can expect from a 1500 MTU GigE network.

    2. Re:Use Iperf to test network bandwidth by Cyberdyne · · Score: 1
      The bus shouldn't be a problem, because even a lowly 32 bit 33 MHz PCI bus has a theoretical 1.056 Gb/s data rate.

      As soon as you factor in any overhead at all - or of course any other devices on that PCI bus, like a graphics card or storage - your 32bit 33MHz PCI bus has less available bandwidth than the network connection. Then you have TCP ACKs: full-duplex GbE is 1 Gbit/sec in each direction; 32x33 PCI is 1Gbit/sec total... If you're streaming data between disk and network, of course, you also need to double the PCI bandwidth needed (or put the storage and NIC on different busses!).

      With anything more than basic PCI (moving to 64 bit PCI and/or 66MHz), you should be fine though; I'd expect 32x33 PCI to be just about OK for IPerf in one direction only with nothing else running, but you'd be hitting a bottleneck as soon as anything else is using the bus as well, including network traffic in the other direction.

  11. Gigabit ethernet != gigabit file transfer by photon317 · · Score: 2, Interesting


    Gigabit ethernet is fast, and it's very easy for your processor, your tcp stack, your driver, your card, your pci bus, etc... to bottleneck at less than gigabit speeds. It's pretty hard to tell you which without seeing the whole setup and analyzing it in place. It's also possible for the tcp protocol itself to bottleneck at a lower-than-gigabit speed if you don't tune various parameters to help it out. You can tell if it's a tcp bottleneck by trying multiple parallel transfers between the same pair of machines and checking to see if the aggregate bandwidth is significantly higher than a single transfer. If this turns out to be the case, you can look at various network tunable like buffer sizes and window sizes. Another related tunable is the MTU of your ethernet network. If ALL your cards (and your switches if you had any) support it, you can turn on Jumbo Frames and push 9000 bytes per ethernet frame instead of 1500, which can make a big difference in transfer speeds over a gigabit network.

    --
    11*43+456^2
    1. Re:Gigabit ethernet != gigabit file transfer by noweat · · Score: 1

      if you're using your linux machine as a gateway then you'll definitely run into a bottleneck at the pci bus for starters. which happens to be the no. 1 reason why hardware gigabit switches are so expensive, since they switch at a hardware level (hence faster) instead of software

  12. Samba, hard drives, pci bus by molo · · Score: 4, Informative

    A couple likely bottlenecks:

    1. samba. The microsoft SMB or CIFS protocol is a big inefficient hog. Try transferring with FTP. The data is piped down a TCP stream, end of story.

    2. hard drives. most hard drives can't push a gigabit/second from the platters (let alone write). Check out their sustained transfer speed (not burst cache). Also check out your bus medium. ATA-66 won't push a gigabit.

    3. pci bus. Transferring data down the PCI bus from the disk controller and then back out the PCI bus to the network card means you need a 2x effective bandwidth. PCI can't hit 2 gigabit here. You might get better results with PCI Express.

    Good luck.
    -molo

    --
    Using your sig line to advertise for friends is lame.
    1. Re:Samba, hard drives, pci bus by Dr.Dubious+DDQ · · Score: 1
      The microsoft SMB or CIFS protocol is a big inefficient hog.

      Somewhat off-topic, I know, but how do the speed of different WebDAV implementations compare to SMB/CIFS in terms of efficiency? Do I remember correctly that once the initial header goes across, the rest is just plain packet data with no further negotiation?

      most hard drives can't push a gigabit/second from the platters

      More on-topic now - that's a good point. I can get up to nearly 30MB/s (or VERY roughly 300Mbps) on a 5400RPM drive reading directly (hdparm -t), so assume even under ideal conditions and a 10,000RPM drive you'll get less than 60MB/s or so (or again VERY roughly 600Mbps = 60% theoretical maximum for Gigabit). Maybe try transferring a file large enough to get a good test but small enough to fit in the available cache RAM...and then transfer it immediately a second time (so it's being served from the cache?)

    2. Re:Samba, hard drives, pci bus by WuphonsReach · · Score: 1

      More on-topic now - that's a good point. I can get up to nearly 30MB/s (or VERY roughly 300Mbps) on a 5400RPM drive reading directly (hdparm -t), so assume even under ideal conditions and a 10,000RPM drive you'll get less than 60MB/s or so (or again VERY roughly 600Mbps = 60% theoretical maximum for Gigabit).

      Bit more complicated then that... higher areal densities on the platters will allow for higher sustained transfer rates. So an older 40GB/platter drive will have a slower transfer rate then the 80GB/platter drive with the same rpm. (The 80GB/platter will feed more data past the head per unit of time.)

      My 5400rpm 160GB drives and 5400rpm 300GB drives both seem to be right around 30MB/s. That number is based on what was reported while creating the RAID arrays in Linux (also seen when copying files from drive to drive in WindowsXP). With 7200rpm 200/250GB drives, I've seen rates of 45MB/s when transferring between two drives on the same system.

      At a guess, we'll need to see 200GB/platter in a 3.5" package in order to hit 100MB/s. IIRC, we're either at 80GB/platter or 100GB/platter today.

      --
      Wolde you bothe eate your cake, and have your cake?
    3. Re:Samba, hard drives, pci bus by afidel · · Score: 1

      Even the best HDD's hit only 60MB/s on the outside of the platters. That's a 15K RPM medium (by todays standards) density HDD. The best IDE high density HDD is the Maxtor Maxline 300GB SATA drive with an outside transfer of only 38MB/s this is a 7200RPM 100GB/platter drive. Assuming linear growth in transfer in relation to density even 200GB/platter won't hit 100MB/s @ 7200 RPM. All numbers are from storage review's performance database.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
  13. Bus bandwidth by Anonymous Coward · · Score: 0

    PCI has a transfer peak rate of 133 MB/s, according to Wikipedia. This means you'll never get over 500 Mbps, since PCI is NOT full-duplex.
    You could get better results by enabling the "Fast switching" options in the Linux Kernel; this may cut the box out of the net (can't remember), but you can try to see how this affects you network. If numbers rise, the the bottleneck is the CPU. Otherwise it's probably the PCI bus.

    1. Re:Bus bandwidth by sploxx · · Score: 1

      Hey, that's certainly 133MBps (Mebi_byte_/second), not 133Mbps (Mebi_bit_/second)!
      I.e. 133MBps are about 1068Mbps.

      And, yes, "mebi" is the correct SI unit here. Google for mebibyte vs. megabyte.

  14. ttcp and jumbo frames by eht · · Score: 2, Interesting

    I just installed gigabit at my home network but sprung for a cheaper switch, the only problem with it is that it doesn't do jumbo framing, and here is a list of jumbo frame compatible hardware

    to test your link speeds you should not be using Samba, instead use ttcp (windows version,java version, or your favorite distro should have a copy, I know it's in the ports of FreeBSD)

  15. Expected performance by Solder+Fumes · · Score: 1

    To effectively use a gigabit pipe, especially for sustained transfers, you need gigabit integrated into the motherboard and a fast RAID or fast Serial ATA. You also cannot expect commodity hardware to route gigabit through PCI, get a switch.

    1. Re:Expected performance by Anonymous Coward · · Score: 0

      All untrue. You do not need RAID or Serial ATA to get speeds at a gigabit. This is a god damn network, not hard drive cluster. Most low-end gigabit cards easily go faster than the speeds he reported. Read my other post (below, I think) regarding using the proper PCI slot types, thats the biggest mistake people make.

    2. Re:Expected performance by Solder+Fumes · · Score: 1

      I said, "to effectively use" didn't I? What good is a gigabit network if you're severely limited by your hard drive and peripheral bus abilities? Even if you're transferring data from RAM on one PC to RAM on another, you still have to load the data into RAM....

  16. Jumbo Frames, NFS v.3 by green+pizza · · Score: 1

    Make sure you have jumbo frames enabled on all the machines. Note that you need OS X 10.2.4 or newer on your Mac to use the 9K frames.

    Also, Samba might not be the best choice for Mac Linux transfers. You'll probably be better off using NFS version 3 between the Mac and Linux box. Both machines should speak NFS natively and not require any additional software.

    1. Re:Jumbo Frames, NFS v.3 by WuphonsReach · · Score: 1

      Make sure you have jumbo frames enabled on all the machines. Note that you need OS X 10.2.4 or newer on your Mac to use the 9K frames.

      What happens if jumbo frames is enabled on the server but not on one of the workstations?

      --
      Wolde you bothe eate your cake, and have your cake?
  17. TCP is a bottleneck too by DougWebb · · Score: 2, Interesting

    I just read an article in this month's CPU (computer power user) about the limitations of TCP on high-speed networks. Apparently, due to the way TCP adjusts to available bandwidth, it can never exceed 450Mbps or so.

    TCP was designed for the 10/100 Mbps ethernet or less. To make effective use of faster networks, you need to use an enhanced version of TCP, of which there are several. I don't think any are mainstream yet, though.

    That aside, as others have pointed out, your PCI bus and hard drives will bottleneck sooner than TCP will.

    1. Re:TCP is a bottleneck too by Anonymous Coward · · Score: 0

      You don't have a fucking clue what you are talking about. TCP scales to 10gbit/sec easy. Learn before posting. I don't think 100mbit was even out when TCP/IP was designed, although I am not sure about that.

    2. Re:TCP is a bottleneck too by DougWebb · · Score: 1

      If that's true, why does BIC TCP exist?

      According to their FAQ:

      BIC solves the performance problem of TCP in fast long distance networks. In a high bandwidth network beyond 1 Gbps with the network delays in the range of milliseconds (or bandwidth in the range of Mbps, but delays in the range of seconds), TCP severely underutilizes the available bandwidth because of its slow response to available bandwidth. BIC solves this problem by modifying TCP's window increase function.
    3. Re:TCP is a bottleneck too by tigersha · · Score: 2, Insightful

      The key here is "long range". This is one thing that network amateurs always get confused. There is a hell of a difference between latency and bandwidth. TCP does not handle low latency networks all that well (it sucks over satellite, for example) TCP does handle high bandwidth very well, but if the latency is low (because of the "long range" and "millisecond delays" in your example) TCP is not optimal at all.

      Basically with a low-latency network there is a lot of space in the pip for packets and TCP does not fill it up because the window is too small.

      This has nothing to do with speed.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    4. Re:TCP is a bottleneck too by pehowell · · Score: 2, Informative

      First, range has nothing to do with it. You can get a decently low amount of latency (and high amount of bandwidth) all the way across the world with fiber. It just depends on the media. Satellite shots add a lot of latency because of the time for the signal to travel through the atmosphere and back down, plus the resending of packets due to errors.

      Secondly, low latency is what you want. TCP doesn't handle HIGH latency very well. Remember, TCP needs to get ACKs back for every packet it sends. High latency means TCP has to wait a while for a response.

      Just remember they are pushing Gigabits per second down fiber that laying on the bottom of the ocean.

    5. Re:TCP is a bottleneck too by tigersha · · Score: 1

      Ok, Ok i switched low and high... High = more time for packet to flow to other side, not high speed.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
  18. Windows of course! by AllMightyPaul · · Score: 2, Interesting

    This is not a troll. Workstation versions of Windows, like Windows NT Workstation, Windows 98, Windows ME, Windows 2000 Professional and Windows XP have a crippled TCP/IP stack that make them move data slower than they really should. Using a "Server" edition of windows like Windows NT Server, Windows 2000 Server and Advancd Server and any edition of Windows 2003 will make any network throughput markedly faster.

    1. Re:Windows of course! by WhatAmIDoingHere · · Score: 1

      Proof?

      Are we just to take this guy's word for it?

      --
      Not a Twitter sockpuppet... but I wish I was.
    2. Re:Windows of course! by Anonymous Coward · · Score: 0

      Well, you can analyze the algorithms of the different stacks by looking at the source code---oh, wait...

      I guess that leaves empirical analysis as the only option.

    3. Re:Windows of course! by Forbman · · Score: 1

      drtcp

    4. Re:Windows of course! by WhatAmIDoingHere · · Score: 1

      You mean using your non-biased views to, basicly, guess?

      --
      Not a Twitter sockpuppet... but I wish I was.
    5. Re:Windows of course! by eht · · Score: 1

      This guy is a complete troll, at the very least NT4 server and workstation are the exact same product with one very small difference, the registry is slightly different. for more info

  19. Gigabit switching not for generic machines... by Anonymous Coward · · Score: 4, Informative

    With the increased bandwidth of Gigabit Ethernet, software routing on generic hardware is severely non-optimal these days.

    • 32-bit/33Mhz PCI (which is the nice short PCI slots in all NON-server motherboards) is limited to 132MBytes/s transfer. Since a full 1Gbit = 128MBytes, you only can only get a theoretical 66MBytes per GBit port, since ALL traffic has to go back and forth from main memory, and thus has to cross the PCI bus twice.
    • For the high-end 64-bit/66Mhz PCI slots available on server motherboards, you get a theoretical 528MBytes/s performance, which should be enough to run 2 simultaneous connections (even with some of the PCI bus collisions).
    • The above holds even for dual-port NICs, since the traffic has to go back and forth to RAM, and can't just stay on the NIC.
    • The size of the NIC's on-board buffer has a serious impact on performance, as this acts a temporary storage while the CPU deals with the network packet interrupt. If you have a small buffer, then you're going to force a lot of retransmits, as stuff comes in and overwrites the existing data while waiting for the CPU.
    • Remember that for every packet incoming, there is an interrupt request sent to the CPU to deal with the incoming data. A rule of thumb from the Sun Solaris side of the house: You dedicated 1 full 400Mhz UltraSPARC II CPU to just servicing the interrupt requests from a single GBit ethernet card. Translated to the x86 world, that generally means that you'll run at least 25% CPU load on a 2GHz CPU while trying to service 1 GBit ethernet's full of network interrupts.
    • If you have NICs which can use Jumbo Frames, these improve performance considerably, as they reduce the total number of packets (and thus, overhead) by a factor of 10.
    • Linux's network stack is not fully optimized for GBit performance. The BSDs are better, but neither have had the obscene tuning that dedicated router/switch stacks have (such as Cisco's IOS).
    • As mentioned above, the non-Server versions of Windows have similar limitations in their network stacks, which seem to limit network throughput to about 200Mbits/s, regardless of hardware. The various Server versions don't have this problem.
    • Remember that you are doing ROUTING, when all you really want to do is SWITCHING. Routing is significantly more work for the CPU, since it involves packet inspection, and not just a MAC address table lookup and reforward.
    You really need to use dedicated switches (as there are hardware ASICs that do this all at near-wire speeds, and eliminate all the potential problems above).
    1. Re:Gigabit switching not for generic machines... by Anonymous Coward · · Score: 0

      "Remember that for every packet incoming, there is an interrupt request sent to the CPU to deal with the incoming data. A rule of thumb from the Sun Solaris side of the house: You dedicated 1 full 400Mhz UltraSPARC II CPU to just servicing the interrupt requests from a single GBit ethernet card. Translated to the x86 world, that generally means that you'll run at least 25% CPU load on a 2GHz CPU while trying to service 1 GBit ethernet's full of network interrupts."

      A 2Ghz Athlon64 is ~8x faster than a 400Mhz USII on non-FPU tasks like this.

      Plus, any modern Gbit card does interrupt coalescing. Even if your card doesn't, Linux's NAPI will switch to polling over a certain interrupt rate.

  20. For comparison by Johnny+Mnemonic · · Score: 1


    Over unencrypted AFP (Mac native filesharing protocol) from one Xserve G5 2.0 DP to another, via a $100 Gigabit switch, I got 33MB/s, or almost exactly 2GB/minute.

    I did find that turning on the encryption option blew that number to hell: I didn't play with it long, but it appeared that it cut my speeds to about 10% of that.

    The servers in question didn't have much else going on, etc. Not truly scientific, as that rate was good enough for me. And enough to show me that I should not use encryption when I do large size file transfers.

    --

    --
    $tar -xvf .sig.tar
  21. high end IBM AIX machines... by Anonymous Coward · · Score: 0

    with jumbo packets off:
    - 22 MB/s (~220 Mb/s) disk-to-disk (FTP)
    - 35 MB/s RAM-to-RAM (FTP)
    with 9k jumbo packets on:
    - 22 MB/s (~220 Mb/s) disk-to-disk (FTP)
    - 60 MB/s RAM-to-RAM (FTP)
    never got more than 60 MB/s sustained
    Suggestions:
    - get a high speed server
    - get a high speed server-grade NIC card, that (at least) offloads checksums from driver to NIC
    - turn on jumbo packets (warning: couldn't make it work between AIX-Windows 2000 on a Dell 2650)
    - if using a switch, get a good switch that supports jumbo packets

  22. jumbo frames by DevilM · · Score: 1

    If all your hardware isn't capable of supporting and configured to use jumbo frames it will be hard to come anywhere close to saturation point.

  23. OP: Answers by Glonoinha · · Score: 4, Insightful

    On your best day a random IDE drive is going to read or write 30 megs a second (average, on the fairly high side for anything short of SATA or nice SCSI) for completely sequential data in a large contiguous file; that's 240 megabits maximum throughput at the drive heads, or effectively 'wire speed'. That's assuming you are using relatively new hard drives in all these machines.

    Throw in all the Samba and other protocol overhead, throw in the fact that you probably aren't running P4 3.2GHz boxes, in fact maybe much less, throw in the lack of a dedicated switch and all of a sudden getting 50% of your theoretical peak throughput (hard drive being the limiting factor, not network) isn't too harsh of a reality.

    And it's a 'Windows' box, you stupid fuck. Maybe if Linux users (yea, I'm posting this in Mozilla on a RH9 install) would grow up and learn to spell the word 'Windows', Corporate America wouldn't instantly dismiss Linux users as a bunch of fucking retards. I spend a part of my work day trying to convince my boss that Linux is the choice of a new generation of professionals and every time someone says M$ or 'Windoze' I have to start over from ground zero. If you aren't part of the solution, you are part of the problem.

    --
    Glonoinha the MebiByte Slayer
    1. Re:OP: Answers by MoonBuggy · · Score: 1

      I've taken to linking this Penny Arcade strip whenever I hear a zealot mention M$ (and I'm as anti-microsoft as you get; this is being typed on a Mac and there's a Mandrake box whirring away next to it). It's suprisingly effective since even if the strip accurately represents the poster, they tend to shut up in an effort to keep self respect and not face the ridicule of the community, plus it helps them see how they appear to the great unwashed who they had hoped to convert.

    2. Re:OP: Answers by Myuu · · Score: 1

      Brilliant man...fucking brilliant. Thank you for restoring my faith in /.

      There needs to be a way to mod you higher...can I buy you a hooker or something ;) ?

      --

      forget it.
    3. Re:OP: Answers by Stevyn · · Score: 1

      Kick ass and thanks mods. I'm getting really sick of people thinking they're either clever or funny for purposely misspelling windows or microsoft. Now I can't spell for shit, but I don't find misspelling to be an insult to the intelligence other than of myself.

      Keep up the good work of selling linux for what it is and not what assholes (who think they can actually achieve gigabit ethernet on their home network using 3 nics) do to hurt its reputation.

      It's a sad fact you had to go out of your way to say you're running linux But I've learned if you don't, some condecending moron will try to convince you to switch to linux or label you an "ms-fanboy."

      Anyway, keep up the good posts.

    4. Re:OP: Answers by Anonymous Coward · · Score: 0

      The FUD about M$ and windoze is a two way street...

      I see how cheap Windows is compared to linux all the time and a few lawsuits and I also start from ground zero as well...

    5. Re:OP: Answers by EaterOfDog · · Score: 1

      I find it ironic that you refer to this guy as a "stupid fuck" and then talk about the need to grow up. Your point is valid, but you hurt your argument with your 13-year-old vocabulary. Maybe you need to grow up a bit yourself.

      --

      Crushing my karma one post at a time.
    6. Re:OP: Answers by orpx · · Score: 1

      windoze is a pun, you nazi. and its not like this is a sales pitch. if your boss does not see that nux is the way then most likely your not expressing things as they are or not giving it that extra zing that the sale pitch needs, how do you think M$ is so popular? You define it, dont let it define you. Really though, what does this guy expect putting 4 giga nics in his machine and then not reaching 'giganet' speeds. linux users grow up? I think the whole fuckin world needs to grow up. YOU DEFINE IT, DONT LET IT DEFINE YOU!

    7. Re:OP: Answers by orpx · · Score: 1

      with everyone so cool and cynical...

      windoze is a pun, if you cant bring yourself to ignore it and understand the true value of the mea...

      OMG THAT GUY IS SO CLEVER!

  24. don't you wish you'd done your homework by Clover_Kicker · · Score: 1

    before you went out and bought all that gear?

  25. Iperf - Network Speed Testing Tool by ledbetter · · Score: 3, Interesting

    Give Iperf a try. I used it for benchmarking my home gigabit LAN. It's got multiple versions available for many platforms (as well as source code). It generates data and sends it, not requiring any hard drive access thereby taking drive speed out of the equasion. This blog site also has some more info.

  26. PCI / Gigabit NICs by Anonymous Coward · · Score: 1, Informative

    Most PCs nowdays have the standard 32-bit 66mhz PCI slots and 64-bit PCI. Of course, the 66Mhz PCI slot will top out at transfer speeds of ~266Mbytes/s. 64 bit slots will of course be a bit faster.

    Worse yet, if you are running these gigabit nics in a 33Mhz PCI slot, you will get less than 133Mbyte/s transfer rates across the bus.

    So my advice to you is that you investigate what kind of speeds and slots your cards use. Are they on their optimal slot type? Are they actually using bus mastering?

    You should easily be able to get near top speed if place the cards in their optimal slots and actually configure your drivers right. Also, increasing the MTU to a higher value will probably significantly improve your large data transfer speeds.

  27. What you seeing is the "average rate" and not .... by sireenmalik · · Score: 1

    Internet traffic is

    --


    Voltaire: God is dead.
    God: Voltaire is dead!
  28. Blatantly false. by Anonymous Coward · · Score: 0
    I have seen someone achieve 700MB/s (yes, that's megabytes) on a 10GbE over TCP. It's a question of using

    • Large send/receive windows
    • Jumbo frames.
    • High/low watermark polling in combination with interrupts

  29. You are a moron. by Anonymous Coward · · Score: 0

    High latency has nothing to do with bandwidth. TCP easily scales up to 10GbE as long as the latencies are low. (And even with high latencies it's simply a matter of increasing send/receive window sizes). Like the parent said: Learn something before posting.

  30. Use a dedicated switch by John+Miles · · Score: 2, Insightful

    As a lot of people have pointed out, off-the-shelf PCs aren't a good choice for gigabit Ethernet switching and routing regardless of the OS, and you can't really take advantage of true full-duplex Gigabit Ethernet on a standard consumer PCI bus. Still, you can do better than 145 Mbit/sec.

    I've been using a LinkSys EG008W switch on my home network, and it's a real bargain. It is a true switch (not a hub), costs less than $200, and all eight ports are capable of autosensing gigabit-capable hardware. Not all so-called "Gigabit" hubs are created equal; some of them only work in half-duplex mode, some of them only have gigabit capability on their uplink ports; some of them slow down to 100 megabit/sec if any of their ports are connected to 100-megabit devices.

    The Linksys's big drawback is its fan noise. It is insanely annoying. I owned mine for about 24 hours before I opened it up and dropped the voltage to the fan with a three-terminal regulator IC. I cut a hole in the top to improve the airflow at the lower fan speed, and it's perfectly unobtrusive now. (No, I don't remember what voltage I ended up running the fan at, unfortunately.) If you're either (a) deaf; (b) located at least a couple of rooms away from your network closet; or (c) handy with a soldering iron and indifferent to manufacturer warranties, the EG008W would be an ideal piece of hardware for your situation.

    --
    Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
    1. Re:Use a dedicated switch by DAldredge · · Score: 1

      Does that swich support jumbo frames?

    2. Re:Use a dedicated switch by John+Miles · · Score: 1

      A Google search on "EG008W jumbo frames" suggests that it does not. What effect that has on ultimate throughput, I don't know.

      I do know that I get roughly the same throughput accessing drives on a remote machine (via netbeui) as I do on my local box, so it hasn't been an issue for me. If my NICs were sitting on PCI Express ports, I'd probably be more concerned about it. Given the price of the EG008W, I really don't have any room to complain.

      --
      Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
  31. average Vs. maximum rate by sireenmalik · · Score: 2, Informative

    1. What you are seeing is average rate.

    TCP goes into congestion avoidance and fast retransmit and recovery (for example TCP-Reno). The connection might be touching maximum rate but you are not seeing it!

    2. If your file transfer is over a large round trip time then TCP rate gets dilated: (File-Size / N*RTT)

    where RTT is round trip time and N is the number of round trips required to transport the page.

    3. If you are downloading the file, from "somewhere out there" then the bottleneck might be "somewhere out there" and not in your setup. Please recall, the bottleneck will cause TCP to de-accelerate whenever it sees a packet loss.

    2/100 dollars.

    --


    Voltaire: God is dead.
    God: Voltaire is dead!
  32. hmmm ... by Anonymous Coward · · Score: 0

    you could make a 512 MB (or less) ram disk and
    copy i file from one ram disk to another thru
    gigabit. this would tell you if the NICs are
    really capable to do it ...
    another bottleneck might be the switch/hub ...

    did you do the cableing correctly?

  33. Find out with MRTG by Bios_Hakr · · Score: 2, Insightful

    One of the best things you could do is configure SNMP on all 3 boxen. After that, run MRTG to figure out what's happening on the wire. If you made the connectors yourself (as opposed to factory-made cables), doublecheck to see if the connectors fall within the CAT-VI spec. How much of the pair is untwisted? How far into the connector is the shield/plenum seated? Is the wire kinked or does it have sharp bends anywhere? Is the wire running next to power? All these things can cause the signal to be degraded.

    Get a good disk benchmark and run that on all 3 boxen. Find out if the disks can sustain traffic at the 1000mb (125MB/s isn't going to come from a single IDE disk) rate. Also, keep in mind that core logic switching from a PCI RAID card to a PCI NIC will eat up some bandwidth.

    Finally, benchmark each link individually with a server benchmark tool. Put a 1GB file on the linux box and see how long it takes to transfer to each of the clients. Then do the same file from the clients back to the server.

    On a side note, SOHO GB switches shouldn't cost more than $100. But, if your disks cannot keep up with the rate, it won't matter.

    On a side, side note, we have tools that show a lot of things about our hardware. Why are there no tools showing the used bandwidth of the PCI/AGP/memory bus. Troubleshooting this prob would be simple if you could see that a specific bus is being saturated.

    --
    I'd rather you do it wrong, than for me to have to do it at all.
  34. Ask Slashdot: 25 years ago. by NoMoreNicksLeft · · Score: 1

    25 years ago: Finding the Bottleneck in my 4mps Token Ring LAN - Hello, even though I'm supposed to be getting 4mps, I'm lucky when I can see sustained 1mps speeds...

    15 years ago: Finding the Bottleneck in my 10mps Ethernet LAN - Hello, even though I'm supposed to be getting 10mps, I'm lucky when I can see sustained 2mps speeds...

    10 years ago: Finding the Bottleneck in my Fast Ethernet LAN - Hello, even though I'm supposed to be getting 100mps, I'm lucky when I can see sustained 10mps speeds...

    1 year ago: Should we rejoice yet? - Having noted the nearly a decade its been since we've had to explain to yet another ijit why theoretical maximum bandwidth is almost never attained, I say it's time to party. Finally, the deluge is over, what do you think?

    1. Re:Ask Slashdot: 25 years ago. by Prowl · · Score: 1

      to be honest i think it's cmdrtaco in disguse, trying to solve all the "503: Service Unavailable" /.s been having recently...

      --
      That man tried to kill mah Daddy
  35. 3 NIC's in a box????? by sribe · · Score: 1

    I only have 3 computers on the gigabit network (a Mac, a Windoze machine, and a Linux box) so instead of getting a switch, I triple NIC'd the Linux box, which I use as a gateway and a file server.

    Why would anyone put 3 gigabit NIC's in a box and route within a 3-node network when you can buy a low-end gigabit switch for less than $100??? Were you hung over the day you "designed" this??? Also note that using cable of a higher grade than required by the spec typically doesn't give you some magic speed increase ;-)

    I just installed the 8-port version of that switch (~$110) at home, and I find that I get ~350mbps between a G4 tower and a G4 PowerBook, without tweaking any IP options, and on my existing Cat 5 wiring.

  36. get some hardware! by itzdandy · · Score: 2, Informative

    just get a gigabit switch.

    i'm not trying to be a dick here, but your a fucking moron if you think you can use elmers glue and duct tape to build a high speed network! gigabit needs gigabit cards and gigabit switches period, not haveing these is effectively taking the giga out of the bit.

    secondly, if your saying that it was cheaper for you to get 5 gigabit cards that it was to get 3 gigabit cards and a 4 port gigabit switch, then a lot of your problem is problably weak gigabit cards. you didn't but the 12$ ones on the internet did you? those should be labeled 1/3gigabit, their processors arent capable of enough transactions, and some actually offload onto the CPU like some sick "winethermodem"

    i run a gigabit network at my home, i have 4 desktop machines on it, 2 of them with INTEL gigabit built into the motherboard, and the other 2 with intel PCI cards. i can easily transfer using nfs at 700mpbs, which sounds fair to me after TCP/IP overhead. my samba results are a bit less and around 600-650mpbs.

    also. every one of these machines is an XP1600+ or faster, except for my notebook, which is a celeron2.4 and is using a PCMCIA gigabit card from 3Com. The laptop is slower on the network with about 400mbps with samba, which is most likely a limitation of the 3com card combined with the PCMCIA bus.

    --

    i appologize for cursing, but please read that paragraph again. you need to build things within spec(or above) to get the stated performance, gigabit is not made to be strung nic->nic->nic and routed with standard routing software. Your PCI bus, your nics, your memory and CPU, and your un-tuned routing are problably ALL adding up to your week transfer rates.

  37. Too many wrong decisions by Tux2000 · · Score: 1
    • Windows / Samba is not a good benchmark. The protocol is so bloated and Windows does so many things behind your back that you can't get reliable results. Use FTP or raw sockets (netcat).
    • Don't benchmark networks with active Windows systems. Windows floods your net with broadcasts.
    • Don't copy from or to harddisks for benchmarks. Use ramdisks or packet generators. Recent S-ATA disks have a theoretical peak(!) transfer rate of 160 MByte/s, with a much lower average transfer rate. Compared to a ramdisk, this is just slightly more than a floppy.
    • Thing about bandwidths of all relevant busses. The PCI bus on a consumer mainboard can do no more that 133 MByte/s in a burst, shared for all available PCI slots. Again, the average transfer rate is much lower. One gigabit ethernet adapter is sufficient to fill the bus. That's why Intel includes the gigabit ethernet interface (except for the physical interface) into the north bridge of recent chipsets, where more bandwitdh is available. The backplane of any available gigabit ethernet switch has enough bandwidth to cope with several gigabit streams.
    • Don't let a multi-purpose OS on a multi-purpose hardware do the job of a specialised hardware + firmware. It may work using brute force, but special hardware and firmware can do the job with less energy and more performance. This is true for (ab)using linux as hub, switch or bridge. It is also true for WinModems and several other recent "using software instead of hardware" ideas. And as I must confess, Linux on x86 is a bad router platform. My old 486DX4-133 router needed 40W AC power and two noisy fans for the same job that is now done by a fanless 200 MHz MIPS CPU from less than 20W AC power, plus I got a four port switch for free.

    A noname 5 port gigabit switch costs about 70 EUR (8 ports for 80 EUR, 1 EUR is about 1 US $). A gigabit ethernet adapter costs about 12 EUR. You currently need two extra cards in the Linux box, 24 EUR. To get a "Linux 5 port switch", you need 4 extra cards, 48 EUR. For a "Linux 8 port switch", you need 7 extra cards, 84 EUR, and perhaps another mainboard. If you look only at the hardware costs, the break even is at about 6 ports. But you trade money against performance, as you already know. Your ordinary PC can't handle the bandwidth of two gigabit connections, and it sure can not handle 8 connections. Looking at the AC power, your PC will draw between 50W (idle) and 300W (working), blowing most of it as heat through a lot of perhaps noisy fans. A real standalone switch is usually fanless, needs about 10W, and can handle 3 or more gigabit connections without trouble.

    BTW: Why do you think that you would need a gigabit ethernet for just three home PCs? You have no device (except for /dev/null and ramdisks) that can source or sink a gigabit stream. Your internet connection is almost sure slower than good old ethernet (10 MBit/s). And I know from my own experiments that looking big videos on Windows (667 MHz) from a Linux fileserver (2x 233 MHz, ATA software RAID) is no problem at 100 MBit/s with only three PCs running.

    Did you know that you can mix 10 MBit/s, 100 MBit/s and 1 GBit/s devices on a gigabit switch? You know that gigabit adapters can fall back to 100 MBit/s to work with 100 MBit/s devices (crossover cable, hub, 100 MBit/s switch, ...) and even to 10 MBit/s for old devices? 100 MBit/s adapters can also fall back to 10 MBit/s.

    Tux2000

    --
    Denken hilft.
  38. linux kernel settings to help by apachetoolbox · · Score: 2, Informative
    echo "0" > /proc/sys/net/ipv4/tcp_sack
    echo "0" > /proc/sys/net/ipv4/tcp_timestamps
    echo "3129344 3137536 3145728" > /proc/sys/net/ipv4/tcp_mem
    echo "65536 1398080 2796160" > /proc/sys/net/ipv4/tcp_rmem
    echo "65536 1398080 2796160" > /proc/sys/net/ipv4/tcp_wmem
    echo "163840" > /proc/sys/net/core/optmem_max
    echo "1048560" > /proc/sys/net/core/rmem_default
    echo "2097136" > /proc/sys/net/core/rmem_max
    echo "1048560" > /proc/sys/net/core/wmem_default
    echo "2097136" > /proc/sys/net/core/wmem_max
    This more then doubled my ethernet (100meg) throughput with local FTP transfers.
  39. another example by apachetoolbox · · Score: 2, Informative
    netmon etc # iperf -s
    ----------
    Server listening on TCP port 5001
    TCP window size: 1.33 MByte (default)
    ----------
    [ 6] local xx.xx.xx.xx port 5001 connected with xx.xx.xx.xx port 32793
    [ ID] Interval Transfer Bandwidth
    [ 6] 0.0-10.0 sec 1.10 GBytes 945 Mbits/sec

    fsf_linux root # iperf -c netmon
    ------------
    Client connecting to netmon, TCP port 5001
    TCP window size: 16.0 KByte (default)
    ------------
    [ 5] local xx.xx.xx.xx port 32793 connected with xx.xx.xx.xx port 5001
    [ ID] Interval Transfer Bandwidth
    [ 5] 0.0-10.0 sec 1.10 GBytes 945 Mbits/sec
    Two dell 2550 poweredge servers, onboard broadcom gbit ports connected to a cisco catalyst 5500 with a 48port gibit blade. about 950Mbits/sec as well.