<br><div><span class="gmail_quote">On 7/10/07, <b class="gmail_sendername">Lachlan Andrew</b> <<a href="mailto:lachlan.andrew@gmail.com">lachlan.andrew@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Greetings Lachlan ,</blockquote><div> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">> I was able to identify the size of the buffer in the Router's interface.
<br>> It was found to be 2040<br>> bytes and the buffer management scheme used is FIFO .<br><br>That's a very small buffer -- it can only hold one packet! Are you<br>sure that was the size?</blockquote>
<div><br> <span style="color: rgb(51, 204, 0);"> I am not quite sure as I don't have much experience in routers.</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> This is the output of "show buffers " command in Cisco C3750 switch.
</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);">""</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> Interface buffer pools:</span><br style="color: rgb(51, 204, 0);">
<span style="color: rgb(51, 204, 0);"> Supervisor MIC Fallback pool buffers, 2040 bytes (total 904, permanent 904):</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> 897 in free list (0 min, 904 max allowed)
</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> 44790529 hits, 0 misses</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> supervisor_cpuq_0_pool buffers, 2040 bytes (total 1200, permanent 1200):
</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> 700 in free list (0 min, 1200 max allowed)</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> 104718271 hits, 0 misses
</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);">supervisor_cpuq_2_pool buffers, 2040 bytes (total 64, permanent 64):</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);">
0 in free list (0 min, 64 max allowed)</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> 64 hits, 0 misses, 0 trims, 0 created</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);">
0 failures (0 no memory)</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);">supervisor_cpuq_1_pool buffers, 2040 bytes (total 128, permanent 128):</span><br style="color: rgb(51, 204, 0);">
<span style="color: rgb(51, 204, 0);"> 1 in free list (0 min, 128 max allowed)</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> 25512718 hits, 199587 fallbacks</span><br style="color: rgb(51, 204, 0);">
<span style="color: rgb(51, 204, 0);">supervisor_cpuq_4_pool buffers, 2040 bytes (total 128, permanent 128):</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> 1 in free list (0 min, 128 max allowed)
</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> 3032553 hits, 35456 fallbacks</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);">supervisor_cpuq_15_pool buffers, 2040 bytes (total 4, permanent 4):
</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> 0 in free list (0 min, 4 max allowed)</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> 801508724 hits, 801508720 misses
</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);">""</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> From that I interpreted that the buffer size is 2040 bytes. Correct me if I am wrong.
</span><br style="color: rgb(51, 204, 0);"><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">> ""<br>> The general rule-of-thumb for Reno is that the send buffer should be
<br>> at least twice the bandwidth*RTT. For BIC is is probably reduced to<br>> about 120% of the BDP<br>> ""<br>> The tunings are as follows.<br>><br>> Send buffer = BDP + 120 % of BDP
<br>> = 921600 + 184320<br>> = 1105920 bytes<br><br>This is 220% of the BDP (100% + 120%). I originally meant just 120%.<br> Still, using 200% should be better.
</blockquote><div><br> <span style="color: rgb(51, 204, 0);"> I think it is only 120 % only of BDP and not 220%. .</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> = 921600 + 921600/100 * 20
<br> = 921600 + 184320<br style="color: rgb(51, 204, 0);"></span><span style="color: rgb(51, 204, 0);"> = 1105920 bytes. </span><br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
><br>> Receive buffer = BDP + Router's buffer size<br>> = 921600 + 2040<br>> = 923640 bytes<br><br>I would have guessed that this is what is causing the biggest
<br>reduction in your throughput. I'm pretty confident that the router's<br>buffer size will be bigger than 2040 bytes.</blockquote><div><br> <span style="color: rgb(51, 204, 0);"> If you know the appropriate command , please let me know. It is
</span><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> Cisco C3750 catalyst switch. Also , tell me the command to increase the<br> buffer size if you are aware of it. <br style="color: rgb(51, 204, 0);">
</span><span style="color: rgb(51, 204, 0);"> </span></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">> But if I tune the window size to twice the size of BDP , I got a
<br>> average throughput of<br>> around 88 Mbits/sec which I feel very much O.K for a 100 MBits/sec link<br><br>The "window" is controlled by TCP -- you can't tune it. Did you tune<br>one of the buffer sizes?
</blockquote><div><br><br></div> <br><div> <span style="color: rgb(0, 153, 0);">I did the following tunings at both ends . BDP was 921600 . So twice of BDP is </span><span style="color: rgb(51, 204, 0);"> 1756366</span>
<br style="color: rgb(51, 204, 0);"><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> /proc/sys/net/core/rmem_max 1756366</span><br style="color: rgb(0, 153, 0);"><span style="color: rgb(0, 153, 0);">
/proc/sys/net/core/wmem_max 1756366
</span><br style="color: rgb(0, 153, 0);"><span style="color: rgb(0, 153, 0);"> /proc/sys/net/ipv4/tcp_rmem </span><div style="color: rgb(0, 153, 0);" id="mb_0"> 4096 87380 1756366</div><div style="color: rgb(0, 153, 0);" id="mb_0">
/proc/sys/net/ipv4/tcp_wmem 4096 87380 1756366</div><br style="color: rgb(0, 153, 0);"><span style="color: rgb(0, 153, 0);"> </span><br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
> In that case , the end to end send and receive buffer size should be<br>> atleast<br>> equal to twice the size of BDP to obtain maximum throughput.<br><br>That sounds like a good rule of thumb. It is certainly the widely
<br>accepted rule for Reno.</blockquote><div><br> <span style="font-style: italic;"> <span style="color: rgb(51, 204, 0); font-weight: bold;">All my findings are based on BIC . Now , since in the case of our network , the size of the buffer in the intermediate router is probably not equal to the size of BDP, so in that case I feel that the end to end send and receive buffer size should be atleast equal to twice the size of BDP to obtain maximum throughput. . This applies both for RENO and BIC.
</span></span><br style="font-style: italic; color: rgb(51, 204, 0); font-weight: bold;"><span style="font-style: italic; color: rgb(51, 204, 0); font-weight: bold;">But if the size of the buffer in the intermediate buffer is equal to the size of BDP , Then the settings can be whatever you said for BIC.
</span><br style="font-style: italic; color: rgb(51, 204, 0); font-weight: bold;"><span style="font-style: italic; color: rgb(51, 204, 0);"><span style="font-weight: bold;">"The receive buffer should be at least equal to the BDP plus the router buffer .
</span><br style="font-weight: bold;"><span style="font-weight: bold;"> The send buffer should be 20% more than BDP "</span><br> </span></div><br style="font-style: italic; color: rgb(51, 204, 0);"><div style="font-style: italic;">
<span style="color: rgb(51, 204, 0);">Do you agree with this statement , please give your views.</span><br style="color: rgb(51, 204, 0);"><br style="color: rgb(51, 204, 0);"><span style="color: rgb(51, 204, 0);"> </span>
<br><br><br> With Thanks and Regards<br> Zaman<br> <br> </div><br></div><br>