NetBSD-Users archive

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

Re: Ethernet auto-select and concurrent 10, 100 and 1000 connections



tlaronde%polynum.com@localhost writes:

> I have a NetBSD serving FFSv2 filesystems to various Windows nodes via
> Samba.
>
> The network efficiency seems to me underpar.

I would recommend trying to test with ttcp or some such first, to
establish packet-handling baseline performance separate from remote
filesystem issues.

Remember that network speeds are given in Mb/s but data throughput is
often in MB/s (bits vs bytes).

Then, there are various header overheads (ethernet, IP, TCP).  Many
interfaces cannot run at full Gb/s rate, but most 100 Mb/s ones get
close (for semi-modern or modern computers).

So you should explain what rates you are actually seeing.  80 Mb/s on
100 Mb/s is great, and 300 Mb/s on Gb/s ethernet is not unusual.

Plus, with seek time and disk read time, that can start to matter.

> There is very probably Samba tuning involved. Windows tuning too. But a
> question arised to me about miscellaneous speeds of ethernet cards
> connecting to a card on the NetBSD server able of auto-selecting the
> speed between 10 to 1000.
>
> The Windows boxes are very hetergoneous (one might even say that there
> are not too same Windows OS versions, because some hardware is quite
> old) and the cards range from 10 to 1000 able ethernet devices.
>
> Needless to say, there is a switch (Cisco) on which all the nodes are
> connected.

Modern (after 10base2 went awwy in the 90s) Ethernet is all point to
point, with switches or hubs.  These days, hubs are extremely rare.  I
believe hubs can only handle one speed.  There were certainly 10baseT
hubs, and I remember 10/100 hub/switch combos that were actually a 10
Mb/s hub and a 100 Mb/s hub with a 2-port switch between tem, and each
port got connected to the right hub depending on what was connected.
But anything in the last 5 years, maybe even 10 years, is highly likely
a full switch.

A switch will negotiate a speed with each connected device.  Most have
lights to show you what was negotiated, explained in the manual.

Sometimes autonegotiation is flaky (speed, and full-duplex) and it helps
to force a speed on each client.  But I suspect, without a good basis,
that this is probably not your issue.

> When concurrent accesses to an auto-select ethernet card are done by
> ethernet cards ranging from 10 to 1000 speeds, are is this handled by
> the card?

Each computer's interface negogiates a speed with the switch.  With a
gigabit switch, that should be the highest speed the interface supports.

Packets are then sent from card to switch, at that card's rate, and then
from switch to the other card, at the second card's rate.  There  is no
per-packet negotiation of speeds.

> What is the "cost" of switching the speed or, in other words, is
> connecting a 10base card able to slow done the whole throughput of the
> card even for other devices---due to the overhead of switching the speed
> depending on connected devices?

Broadcast packets can be an issue.  Not because the individual links
change speed, but because if you have a 10 Mb/s link then all broadcast
packets have to be sent on it.

> (The other question relates to the switch but not to NetBSD: does the
> switch have a table for the connected devices and buffers the
> transactions, rewriting the packets to adjust for the speed of each of
> the devices?).

If it is truly a switch, yes.  But not so much rewriting as clocking
them out at the right speed (with the right modulation).


Usually this sort of switch speed issues works just fine without anybody
having to pay attention.

I would try to measure the file read speed from each machine to the
NetBSD server, and make a table with machine name, local link speed, and
rate, and see if it makes any sense.  Also perhaps try the
newest/fastest windows box with the others all powered off.  Having a
machine on and idle should not really change things, and that's another
data point.

If you follow up on the list, it would be good to give the switch
model, and to find out what speed each device is connected at.  On
NetBSD, 'ifconfig' will show you.  An example line:

        media: Ethernet autoselect (100baseTX full-duplex)

Probably there is some way to find this out on Windows.


Home | Main Index | Thread Index | Old Index