USB Throughput Speed



  • Hi :)

    Please point me to relevant posts if they have escaped my searching :-)

    I have a standard PC running pfSense 1.2 with an Abit IG-81 motherboard, HD install with 3 NIC's
    1. Intellinet 10/100/1000 PCI (Realtek chip)
    2. Giga LanCard 10/100/1000 PCI (Realtek chip)
    3. Jensen USB Fast Ethernet Adapter (10/100) (also a Realtek chip)

    Now, from reading various posts, it seems the worst case scenario (USB 1) limit to USB NICs is 12Mbit. My ISP connection is a fiber channel with 10/10Mbit.

    I just upgraded to 1.2 and switched to this newer hardware and started to test downloads. I checked the Traffic graph and it was drawing a curly line more or less EXACTLY on the 4Mbit threshold. At first I thought it might be the server on the other side so I started downloading from other servers in various locations around the world. The traffic was still "curling" on 4Mbit.

    I then switched to using the second gigabit card, and the graph immediately (after resuming my downloads) started "curling" around 11-12Mbit (Nice!).

    Note 1: My old installation was running 1.0.1 and I did a backup/restore to transport my settings to the new installation (although renaming the interface names)

    Note 2: I also receive TV traffic (unsure about bandwidth) that the Wan card needs to discard continuously, as it is connected straight into the fiber modem.

    Note 3: In my old setup I used a laptop with PCMCIA cards, and my Wan card was a 10Mbit card and I did not see any throughput problems.

    So, is there anything I have forgotten to do when installing a USB NIC? Is there a way of knowing if it is running USB version 1 or 2? Is there a default threshold somewhere?

    Anybody having similar problems?

    Any pointers appreciated  ;)

    Cheers  :)



  • Now, from reading various posts, it seems the worst case scenario (USB 1) limit to USB NICs is 12Mbit. My ISP connection is a fiber channel with 10/10Mbit.

    12Mbps is the transmission speed. The data throughput will be, at best, somewhat less than that.

    I just upgraded to 1.2 and switched to this newer hardware and started to test downloads. I checked the Traffic graph and it was drawing a curly line more or less EXACTLY on the 4Mbit threshold. At first I thought it might be the server on the other side so I started downloading from other servers in various locations around the world. The traffic was still "curling" on 4Mbit.

    I then switched to using the second gigabit card, and the graph immediately (after resuming my downloads) started "curling" around 11-12Mbit (Nice!).

    You didn't say, but I presume in the 4Mbps case you were using the USB NIC to connect to the WAN.

    So, is there anything I have forgotten to do when installing a USB NIC?

    Not that I know of.

    Is there a way of knowing if it is running USB version 1 or 2?

    Yes, the shell command usbdevs will tell you. Here's what I see on my system (from Web GUI, Diagnostics menu, click on Command then type usbdevs in the box next to the command prompt)

    $ usbdevs
    addr 1: UHCI root hub, VIA
    addr 2: ST268 USB NIC, ShanTou
    addr 1: UHCI root hub, VIA
    addr 1: UHCI root hub, VIA
    addr 1: EHCI root hub, VIA
    addr 2: 802.11 bg WLAN, Ralink

    The USB NIC connects to a UHCI root hub (could be OHCI on other systems, depending on the chipset) which is a USB 1.x root hub, max speed is 12Mbps. The Wireless LAN connects to a EHCI root hub which is a USB 2.0 root hub, max speed 480Mbps.

    Is there a default threshold somewhere?

    I expect you have a USB 1.x USB NIC and you're pushing it as fast as it will go.

    Anybody having similar problems?

    If you want a fast WAN interface why not get a 10/100 PCI NIC? I'm not familiar with the motherboard you quoted and don't know what else you have plugged in it but I suspect its likely you have at least one spare PCI slot.

    I use a USB NIC to connect my pfSense box to my ADSL2 modem. The modem generally says it has a download speed of around 6Mbps and an upload speed of around 1Mbps. I think the aggregate is comfortably within the capabilities of the USB NIC. Part of the reason I'm using a USB NIC is that I'm using a low power mini ITX motherboard which has only a single PCI slot occupied by my "production" wireless LAN NIC.



  • Thanks for a fast response  ;D

    12Mbps is the transmission speed. The data throughput will be, at best, somewhat less than that.

    Yes, I am guilty of being sloppy with words :)

    You didn't say, but I presume in the 4Mbps case you were using the USB NIC to connect to the WAN.

    sorry, Yes I was (see more details later). I have attached 2 images from the RRD graphs from last night, one throughput and one processor. You clearly see I switched Wan card around 1:30.

    Yes, the shell command usbdevs will tell you. Here's what I see on my system (from Web GUI, Diagnostics menu, click on Command then type usbdevs in the box next to the command prompt)

    Ok, serious problem: The command does not appear to be installed. From the Web GUI all I get is an output of the command I entered with a prompt $ in front. I then logged into with ssh and got

    usbdevs

    usbdevs: Command not found.

    find / -name usbdevs

    As you can see it's not there  ??? Is it part of an extra package? ???

    If you want a fast WAN interface why not get a 10/100 PCI NIC? I'm not familiar with the motherboard you quoted and don't know what else you have plugged in it but I suspect its likely you have at least one spare PCI slot.

    Some more background info:
    My motherboard only has 2 PCI slots. As I will have a running server on my DMZ I want to have 2 Wan interfaces, one with static IP and one with DHCP. Then all DMZ traffic shall go through static IP and all Lan traffic through dynamic IP. As I might :o download something one day from my LAN PC, I do not want to leave my static IP as it will lead easily to my company site :-[ without having to talk to the police or ISP's.

    Secondly I wanted to have a good connection between LAN and DMZ so I therefore thought to use the 2 gigabit cards for that and USB's for my WAN's as my ISP speed is limited to 10Mbit anyway.

    I was thinking about a dual NIC card, but the PCI ones are really expensive (with the current exchange rate around $550 - but on a more normal rate it's $375 - still expensive)

    Question: Is there a good way of logging this thing in order to see if something is wrong (too much error packets etc)?

    Cheers :)






  • First off, I'm not good quoter so apologies being a sloppy, and I would not do travel the traffic between GbE to/from USB NIC. Well, honestly, it just works but there must be a hitch as you are currently facing.

    As for the command, you'll find it in;

    which usbdevs

    /usr/sbin/usbdevs

    no, it's not extra at all, might be depend on the release(1.2/1.3) but it supposed to be there if you have system installed correctly. I've checked it in 1.3 though. You will also check usb stats from dmesg, here's excerpot from my atom board;

    dmesg | grep usb

    usb0: <uhci (generic)="" usb="" controller="">on uhci0
    usb0: USB revision 1.0
    uhub0: <intel 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usb0
    usb1: <uhci (generic)="" usb="" controller="">on uhci1
    usb1: USB revision 1.0
    uhub1: <intel 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usb1
    usb2: <uhci (generic)="" usb="" controller="">on uhci2
    usb2: USB revision 1.0
    uhub2: <intel 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usb2
    usb3: EHCI version 1.0
    usb3: companion controllers, 2 ports each: usb0 usb1 usb2
    usb3: <intel 82801gb="" r="" (ich7)="" usb="" 2.0="" controller="">on ehci0
    usb3: USB revision 2.0
    uhub3: <intel 1="" 9="" ehci="" root="" hub,="" class="" 0,="" rev="" 2.00="" 1.00,="" addr="">on usb3

    UHCI is rev 1.0 and EHCI is 1.0/2.0 as wallabybob noted.

    I have Intel PRO/1000 MT Dual Port Server Adapter installed in my box. It's PCI-X but fits fine into PCI of course. It was only $220.  Used card can be obtained around $100 at several auction sites.

    Turn SNMP enabled on your box then deploy Cacti(or equiv) onto anothre machine. That gives you a GUI. Othrewise SNMPwalk may help you.

    I think that's enough for now. Google is always your best friend. ;D</intel></intel></intel></uhci></intel></uhci></intel></uhci>



  • I'm using a recent pfSense 1.2.1 testing kit: pfSense-20080820-2336.iso.gz.

    I guess usbdevs is a new feature of the 1.2.1 kits.

    You can get a list of the interface names by the shell command ifconfig -a. If you supply the ifconfig output I'll see what it tells me about the USB NIC.

    It looks to me (http://www.uabit.com/index.php?option=com_content&task=view&id=32&Itemid=48&page=2&model=228) that your motherboard has on-board LAN, 2 x PCI slots, 1 x PCI-E x1 and 1 x PCI-E x16 slot.  Surely there's a spare slot there for another LAN card! PCI Express (PCI-E) NICs have been readily available for some time. An Intel PCI Express NIC can be purchased for under $60 Australian, a brand name USB 2.0 Ethernet adapter retails from about $40. (I've seen plenty of "USB 2.0" Ethernet adapters on ebay for under $15 but when you read the fine prints they are USB 2.0 only in that they will connect to a USB 2.0 port but run at only 12Mbps.)


Log in to reply