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



On Sat, 2 Feb 2019 17:01:18 +0100
tlaronde%polynum.com@localhost wrote:

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

And how did you determine that? There are so many factors that can
affect performance, you need to run detailed tests and work your way
down the list. Normally, good switches are designed to handle
throughput for the number of ports they have, i.e. their switching
fabric should be able to cope with all of those ports transmitting at
the same time at the highest supported rate. So quite often it's not
the switch that causes performance issues, but disk I/O latency and
protocol overheads.

At work, I used to spend a fair amount of my time diagnosing SMB and
NFS performance issues. Below is a checklist that I would normally
run through:

- Check network speeds between various hosts using something like
ttcp or iperf. This should give you baseline performance for TCP
throughput with your hardware.

- Understand how your SMB clients are reading/writing data, i.e. what
block size they use, do they use long sequential, or small random
reads/writes.

- Understand disk I/O latency on your SMB server. What throughput can
it sustain for the workloads from your clients.

- What SMB protocol versions are you clients using SMB1, SMB2 or SMB3.
Later versions of SMB protocol are more efficient. Are your clients
using SMB signing feature, this can have as much as %20 performance
hit.

- Understand how many concurrent streams are running and if they are
running from a single or multiple clients. Samba server is not
multithreaded, so I think it forks a single child process per client.
This means it won't scale on multicore hardware if you are running many
concurrent streams but all from a single client. It is better to spread
the load across many different clients, this way multiple Samba server
processes can be scheduled to run on multiple CPU cores.

... and the list goes on.



Home | Main Index | Thread Index | Old Index