tech-kern archive

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

Re: posix message queues and multiple receivers



On 2013-12-05 13:14, matthew green wrote:
Run a single nfsd and it all works much better.

On that basis should the NetBSD default be changed from -n 4?

i definitely would object to such a change.

i see slowness from multiple clients when i run nfsd with just
one thread.  i've never seen the problem dsl has seen with a
netbsd nfs server (only other problems! :-)

I agree. I think it's nonsense. The idea that dsl have is that having several I/O requests running in parallel against one server would cause starvation on I/O in one thread because the others keeps the disk busy. However, that assumes that I/O gets reordered, and that this reordering can actually cause some I/O to get starved for long enough that NFS times out and retries. If the I/O reordering happens in the hardware, I think that most sane hardware guarantees that some I/O operation is not skipped more than a certain time before being handled. Also, assuming we are doing an elevator scan algorithm (or similar) you will eventually always hit the request, and unless you have a huge I/O queue, it will not take that long. If the reordering takes place in software, and the software starves some I/O requests, then the software is buggy.

If you actually hit upon such a case (buggy I/O optimizations, either in hardware or software), it might be worth to explicitly use other values than defaults in all kind of places for that specific situation.

But in general, allowing several I/O requests in parallel actually has the chance of improving I/O throughput, even if it all hits the same disk. And we have not even touched on the gains if you actually have several NFS servers, or several disks on the NFS server...

        Johnny



Home | Main Index | Thread Index | Old Index