On 5 January 2014 15:36, erik quanstrom <quans...@quanstro.net> wrote: >> Thanks, this is possibly a way, but, at least in my case, this takes ages... >> (Say it can run for >45 mins; maybe much more; I do not know the true >> reason why, >> but I intuitively suspect the protocol.) >> Therefore I asked for a more specific pointer. >> Also, generally, there should be a quicker way. > > it's easy to blame the protocol. but it's more than that. > 0. the i/o unit is just 8k, this means that directories like > /sys/src/9 take 2 or more round trips. this is trivial to fix > by upping MAXRPC in devmnt. i've uppted this to > 56k + IOHDRSZ. this makes a difference even when the > rtt is 50µs. > > 1. (or 0a) the kernel won't issue more than one concurrent > rpc for the same request. > > 2. find/du are single threaded, so they they take full rtt latency > on each syscall. > > there's a small demonstration of 2 at the end of this email. > > - erik > > --- > note that except for the fcp test, rtt dominates. even 384kbps > is more than enough to keep up. in fact, except for the fcp > test time_link0 * rtt_link0/rtt_link1 tracks pretty closely with > the actual result. since link1 is dsl, keeping track of the actual > rtt could have reduced some of this error. > > link0: > rtt ~ 32ms uplink/downlink ~ 100mbps/100mbps: > > 0.29u 0.37s 895.45r rc -c find | grep chess # status= find 7086421: > errors| > 0.03u 0.03s 68.77r rc -c cp lsr /tmp && grep chess /tmp/lsr > .0.04u 0.10s 5.40r rc -c fcp lsr /tmp && grep chess /tmp/lsr > > link1: > rtt ~ 52ms uplink/downlink ~ .384mbps/1.5mbps > 0.00u 0.00s 1468.26r rc -c find | grep chess > 0.00u 0.01s 131.03r rc -c cp lsr /tmp && grep chess /tmp/lsr >/dev/null > 0.00u 0.00s 33.61r rc -c fcp lsr /tmp && grep chess /tmp/lsr >/dev/null >
Thanks for the information! R