[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

true x86 PCI bus speeds/specs

Often, folks post on topics such as maximum network performance or disk
performance they should expect to see from their x86-based server,
firewall, etc.  And almost as often, some uninformed person posts a
reply that says something to the effect of, "Your PCI bus is only 66MHz,
which limits you to 66Mbit/sec", or something similar.  This is wrong.

The most common PCI bus is 32 bits wide, and operates at 33MHz.  Its
maximum throughput is thus 32*33/8 million bytes/second.  That's about
132MBytes/sec.  Some PCI buses are 64 bits wide at 33MHz, such as on
several popular Tyan Thunder models.  Those have a maximum throughput of
264MBytes/sec.  Other boards are 64 bits wide at 66MHz, which is limited
to 528MBytes/sec.  And numerous motherboard implementations have more
than one PCI bus, so you could but high-bandwidth perhipherals on each
of the two buses, and not substantially impact performance or cause them
to compete for resources.

Now, all card/driver combinations have some overhead associated with
them.  The bus isn't 100% efficient, but on many "consumer-grade"
mainboards the 32 bit / 33MHz bus will push 110MBytes/sec or more in
real-world use.  If you don't believe me, check the 3ware RAID card
reviews on storagereview.com (assuming SR is still up).

This means a 100Mbit/sec network througput, which is 12.5MBytes/sec,
will easily fit within the maximum throughput of the PCI bus.  The real
issue is kernel efficiency.  Zero-copy TCP and things like that are
going to improve linux network performance by leaps and bounds.  Going
from a 132MByte/sec bus to a 528MByte/sec bus will disappoint you :-)

This is a popular form of confusion.  Mr Billson is not the first person
to give someone a misleading answer in this respect, nor will he be the
last.  I do not intend to put him down by correcting his answer, but I
hope my post serves to better inform the readership of this list.

On Sat, 2002-02-23 at 09:10, Peter Billson wrote:
>   There was some discussion last January (2001) about this type of
> thing. The problem you will run into if you are using POTS Intel
> hardware is the PCI bus speed, so you are going to have a tough time
> filling one 100Mbs connection with an old Pentium - assuming an old
> 66Mhz PCI bus. You can forget about filling two or more. Also, cheap
> NICs will do more to kill your max. throughput.
>   That being said, I run old Pentium 133s with 64Mb RAM in several
> applications as routers and can notice no network latency on a 100BaseT
> network, but I have never benchmarked the machines. Usually the
> bottlenecks are elsewhere - i.e. server hard drive throughput. Packet
> routing, filtering, masquerading really doesn't require much CPU
> horsepower.
Jeff S Wheeler               jsw@five-elements.com
Software Development            Five Elements, Inc

Reply to: