From mboxrd@z Thu Jan 1 00:00:00 1970 To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> In-reply-to: Your message of "Thu, 18 Aug 2011 01:29:29 EDT." References: <20110817210038.66E0CB827@mail.bitblocks.com> Date: Wed, 17 Aug 2011 23:25:01 -0700 From: Bakul Shah Message-Id: <20110818062501.E4F3EB827@mail.bitblocks.com> Subject: Re: [9fans] Help with two small shared file servers Topicbox-Message-UUID: 143d034e-ead7-11e9-9d60-3106f5b1d025 On Thu, 18 Aug 2011 01:29:29 EDT erik quanstrom wrote: > > > Is 9p suitable for this? How will the 40ms latency affect 9p > > > operation? (I have 100Mbit). > > > > With a strict request/response protocol you will get no more > > than 64KB once every 80ms so your throughput at best will be > > 6.55Mbps or about 15 times slower than using HTTP/FTP on > > 100Mbps link for large files. [John, what was the link speed > > for the tests in your thesis?] > > i calculate 1/0.080s/rt * 64*1024 = 819 kbytes/s. (i think your > conversion from mbits/s to bytes/s is faulty.) *8 for bits. 2^16*8/0.080/10^6 Mbps == 6.5536 Mbps. MBps == 10^6 bytes/sec. Mbps == 10^6 bits/sec. But it is not accurate in another way. 40ms for the server to receive the request. 40 ms for the client to receive the first byte of data + time for transmission of 64KB == 2^16*8/10^8 == about 5ms. Actually a bit more due to ethernet, ip & tcp overhead. So the total time will be over 85ms for a BW of under 6.17Mbps. > also you do get 1 oustanding per read or write, not per machine. > so the real limit is wire speed, but for most programs most of the > time the limit for a single file transfer would be as you specify. It is three things: RTT= round trip time = 2*latency BW = bandwidth DS = datasize that can be sent without waiting. Time to deliver DS bytes will be at least RTT+DS/BW Consider three cases: 1) local (small RTT) 2) remote slow (large RTT, small BW) 3) remote fast (large RTT, large BW) When RTT effects are small (1 & 2) 9p does fine. For case 3, to minimize RTT effects you must make DS large but that can't be done in 9p beyond 64k. In John's test it was 10Mbps @ 25ms latency. To transfer 64KB is 50ms rtt + 52ms or about 102ms. He should see 5.1Mbps or about half the throughput compared to HTTP streaming case but he says it was 1/4th so there must be other inefficiencies.