On Sat, Dec 07, 2013 at 12:02:02AM +0000, David Laight wrote: > I believe that the disk driver on the server selected the disk transfers > using the 'elevator' algorithm. Since the writes were for more or less > sequential sectors, as soon as they got out of sequence one of the write > requests would have to wait until all the others completed.
(1) this is a bug (nfs should be taking steps to preserve sequentiality), and (2) elevator is really not a very good disksort algorithm to begin with. However, I'll bet a significant part of the problem is/was using threads in place of queuing I/O requests asynchronously. If you have a lot of I/O coming in like that and you want things to behave well, it's important that the requests queue up where scheduling logic (disksort or others) can see them, rather than piling up on locks inside the nfs code. -- David A. Holland [email protected]
