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
Jeff S Wheeler firstname.lastname@example.org
Software Development Five Elements, Inc