[Bug 235031] [em] em0: poor NFS performance, strange behavior
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sat Feb 2 23:42:27 UTC 2019
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235031
Rick Macklem <rmacklem at FreeBSD.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rmacklem at FreeBSD.org
--- Comment #27 from Rick Macklem <rmacklem at FreeBSD.org> ---
A little off topic, but rsize,wsize will be set to a power of 2 at or
below the argument. As such, rsize=10240,wsize=10240 will result in
a setting of 8K (or less if the server forces it) for both of them.
You can use "nfsstat -m" on the client to see what is actually being used.
I can't help much, but I would suggest trying increasing powers of 2 for
rsize,wsize until performance tanks.
A couple of reasons smaller rsize,wsize might perform better.
- TSO is broken. This can be tested by using the sysctl to disable TSO.
(I suggest the generic sysctl and not a driver specific ifconfig, in
case the driver config flag is broken.)
- Small send or receive rings that can't handle the burst of packets/mbufs
that the larger I/O size causes.
A write request/receive reply will typically be a chain of size/2K + 2 mbufs
for the sender. (Sometimes +3 depending on how the driver handles the MAC
header.)
The receiver will typically see this as a burst of roughly size/1500 + 1
packets
making up one TCP segment.
If jumbo packets are in use, all bets are off for the receive side, since
at least the >4K ones can fragment the mbuf cluster pool.
- Interrupt throttling. Since most NFS RPCs are small messages requiring
a small reply message in the opposite direction, anything that increases
latency (such as delaying interrupts assuming more packets of a stream
will arrive soon) can hit NFS performance.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-net
mailing list