How to Evenly Distribute USB Multiseat Devices Across All Available USB Buses

From Userful Support
< Manuals‎ | Userful Desktop
Revision as of 12:44, 25 September 2015 by Navdeep (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


To return to the Userful Desktop 8 main documentation page, Click Here.

Introduction

This document describes how to optimally distribute your USB "zero client" or "multiseat" devices across multiple ports. Customers often load/plug all the USB devices on a system into the back of the PC, not taking advantage of the higher performance (and in some cases increased stability) that can be had by spreading the load more evenly across the various USB buses available on the system.

Background

The USB bus is a system bus that transfers data between the USB ports and the CPU. Modern computers typically have two or more USB "buses" each serving several USB "ports" which are accessible either from the front or the back of your PC. Typically ports which are physically grouped together share the same USB "bus".

When USB multiseat devices are under heavy use -- for example, if the stations are playing video -- the data transfer over USB consumes significant bandwidth within the USB bus. Additionally, the graphics drivers are designed to compress video data when they start approaching the upper bandwidth limit of the USB bus, thus consuming additional CPU cycles and slowing down the performance for all users on the system.

By distributing USB-connected multiseat devices across all available USB buses, it is possible to increase the maximum data throughput, creating a more responsive and potentially more stable system for your users.

Recommendations

To improve user experience and system stability, it is strongly recommended to distribute your USB multiseat devices across multiple USB buses. The easiest way to do this is to ensure some devices are plugged into the USB ports on the front of the PC, and some into the back (as almost invariably the ports on the front are served by a different USB bus than the ports on the back of the PC).

For optimal performance from USB devices, spread the demand between all the available buses.

For example, the back of the computer may have 4 ports, the front of the computer may have 2 ports, and there may be a USB PCI expansion card in one of the slots. The USB cables should be spread out over all 3 of these different buses (or at least the 2 buses on the back of the computer). Doing this distributes the load over more buses and can help a system run more smoothly.

Adding More USB Ports

If you don't have enough USB ports on your computer, you can add extra USB ports. There are two types of USB expansions:

  • USB headers:
    • consist of a plate that fits into the holes in a computer's back panel and cables to plug into unused USB header pins on the motherboard. Note that often the ports on the front panel of a computer tower are connected to the motherboard in this manner; if USB ports are added by installing a header, the front panel ports and the expansion ports may share a single bus.
  • USB PCI expansion cards:
    • consist of a card with built-in ports that fits into one of the PCI expansion slots. Such a card will use the PCI local bus.

Checking the Distribution of USB Devices

Launching Terminal in Administration mode

Enter Administration mode, by pressing Ctrl+Alt+Del and entering the password. Open 'Advanced Tools' folder and double-click 'Command Prompt' to launch a terminal.

Open a terminal and at the command prompt type:

$ lsusb -t

You should get an output similar to that below:

Bus#  2
`-Dev#   1 Vendor 0x1d6b Product 0x0002
  `-Dev#   2 Vendor 0x8087 Product 0x0024
Bus#  1
`-Dev#   1 Vendor 0x1d6b Product 0x0002
  `-Dev#   2 Vendor 0x8087 Product 0x0024
    |-Dev#   3 Vendor 0x03f0 Product 0x0032
    | |-Dev#   9 Vendor 0x03f0 Product 0x0046
    | |-Dev#  10 Vendor 0x0d8c Product 0x013a
    | |-Dev#  11 Vendor 0x046d Product 0xc077
    | `-Dev#  12 Vendor 0x03f0 Product 0x0024
    |-Dev#   4 Vendor 0x03f0 Product 0x0032
    | |-Dev#  13 Vendor 0x03f0 Product 0x0046
    | |-Dev#  14 Vendor 0x0d8c Product 0x013a
    | |-Dev#  15 Vendor 0x046d Product 0xc077
    | `-Dev#  16 Vendor 0x03f0 Product 0x0024
    |-Dev#  44 Vendor 0x03f0 Product 0x0032
    | |-Dev#  45 Vendor 0x03f0 Product 0x0046
    | |-Dev#  46 Vendor 0x0d8c Product 0x013a
    | |-Dev#  47 Vendor 0x03f0 Product 0x0024
    | `-Dev#  48 Vendor 0x046d Product 0xc077
    |-Dev#   6 Vendor 0x03f0 Product 0x0032
    | |-Dev#  21 Vendor 0x03f0 Product 0x0046
    | |-Dev#  22 Vendor 0x0d8c Product 0x013a
    | |-Dev#  34 Vendor 0x046d Product 0xc077
    | `-Dev#  35 Vendor 0x03f0 Product 0x0024
    |-Dev#   7 Vendor 0x03f0 Product 0x0032
    | |-Dev#  25 Vendor 0x03f0 Product 0x0046
    | |-Dev#  26 Vendor 0x0d8c Product 0x013a
    | |-Dev#  32 Vendor 0x046d Product 0xc077
    | `-Dev#  33 Vendor 0x03f0 Product 0x0024
    `-Dev#   8 Vendor 0x05e3 Product 0x0608
      |-Dev#  29 Vendor 0x046d Product 0xc077
      |-Dev#  30 Vendor 0x03f0 Product 0x0024
      `-Dev#  31 Vendor 0x0d8c Product 0x000c

In the example above, the USB devices are unevenly distributed with 6 stations connected to bus #1 and none connected to Bus#2.

Notes Specifically on the HP MS6200

HP MS6200 front.jpg

MS6200's have 6 ports on the back that all connect to Bus#1, and 4 ports on the front that are connected to Bus#2.

Userful recommends to avoid using the usb port closest to the power button (on the front of the MS6200; in the picture to the right, the port at the top), as we have found that port to be unreliable in some systems.