6 Replies Latest reply: Mar 13, 2008 10:39 AM by 555329 RSS

    How to Calculate Bandwidth Delay Product?

      In Data Guard Redo Transport and Network Best Practices for oracle database 10g R2 document, it has been recommended to set the size of TCP Socket buffers (RECV_BUF_SIZE & SEND_BUF_SIZE) to three times the bandwidth delay product (BDP).
      You calculate BDP by multiplying Bandwidth with Round trip Time (RTT).
      I have little confusion regarding RTT. When you use PING (and do not specify packet size) to find out RTT, you get RTT for 32 bytes packet. In case your Primary DB is generating redo at the rate of 4K/ms how would you calculate RTT? If i Simply ping my standby server from primary server with 32 bytes of data i get RTT equals to 1ms but if I ping standby server by sending a packet of 4K then i get RTT equals to 3ms. Which RTT value will i use in that case to find the BDP.
        • 1. Re: How to Calculate Bandwidth Delay Product?

          May be this can help:

          Faheem Latif
          • 2. Re: How to Calculate Bandwidth Delay Product?
            I Posted My question after reading that document.
            • 3. Re: How to Calculate Bandwidth Delay Product?
              :) then sorry ,Chaudhry saab coz me also Chaudhry.
              • 4. Re: How to Calculate Bandwidth Delay Product?
                Anyone Who can help me out with using right RTT while calculating BDP?
                • 5. Re: How to Calculate Bandwidth Delay Product?

                  The RTT time can be obtained by a simple ping to your standby server:

                  ping standby
                  PING standby.example.org.uk ( 56 data bytes
                  64 bytes from icmp_seq=0 ttl=58 time=15.421 ms
                  64 bytes from icmp_seq=1 ttl=58 time=15.482 ms
                  --- standby.example.org.uk ping statistics ---
                  2 packets transmitted, 2 packets received, 0% packet loss
                  round-trip min/avg/max/stddev = 15.421/15.451/15.482/0.031 ms

                  So the RTT number, for me to plug into the formula would be 15.451.


                  • 6. Re: How to Calculate Bandwidth Delay Product?
                    Please find below some info on how to calculate the BDP, hope this would help

                    TCP/IP buffer data into send and receive buffers while sending and receiving to or from lower and upper layer protocols. The sizes of these buffers affect network performance, as these buffer sizes influence flow control decisions.

                    The parameters specify sizes of socket receive and send buffers, respectively, associated with Oracle Net connections RECV_BUF_SIZE and SEND_BUF_SIZE.

                    Please note that some operating systems have parameters that set the maximum size for all send and receive socket buffers. You must ensure that these values have been adjusted to allow Oracle Net to use a larger socket buffer size.

                    Oracle recommends to set RECV_BUF_SIZE and SEND_BUF_SIZE three time the BDP’s value (Bandwidth delay product) in order to fully use network bandwidth over TCP protocol.

                    how to calculate RECV_BUF_SIZE and SEND_BUF_SIZE find below the details

                    Bandwidth= 10mbps=10 000 000 bits /s

                    Assume RTT=10ms=10/1000 (0.01s) ( RTT obtain through ping @server)

                    BDP= 10 Mbps * 10msec (0.01 sec) --à 10 ,000,000 * .01=100, 000bits/s   Note: I took the worst RTT value=10ms

                    BDP= 100,000 / 8 = 12, 500 bytes

                    The optimal send and receive socket buffer sizes are calculated as follows:

                    Socket buffer size (RECV_BUF_SIZE and SEND_BUF_SIZE ) = 3 * bandwidth * delay = 12,500 * 3 = 37500 bytes