TCP cwnd flatlining

Discussion in 'Linux Networking' started by Krish, Sep 8, 2015.

  1. Krish

    Krish Guest

    Hi

    Posting first time. Please point to right platform if this is not right place.

    Setup: Two linux machines connected through 1Gig interface with delay introduced using netem of 60 msecs.

    tcp_wmem and tcp_rmem max values are 8MB on both machines.

    Now, somehow I see TCP cwnd flat-lining in slow start phase itself. i.e. from tcpprobe, the cwnd rises till say 100 and ssthresh is still that big no.(2gig kind initial value) and now TCP cwnd is struck at 100 for next 20-30secs and ssthresh remains 2Gig kind. RTT is approx 60msecs all time. The throughput gets struck around 24Mbps even though link is 1Gig and the tcp buffers are sufficient. Buffer bloating might not be reason as machines are directly connected and CPU is very good.

    I am just downloading a 100MB file from one machine to other using apache server and firefox browser on client.

    I checked following
    a) on browser/sender PC, the CPU is good.
    b) The rcv_win advertized to sender remains at 16MB in the TCP Winscaling graph, so recv_win is sufficiently big not to limit the cwnd.
    c) tcp_wmem and tcp_rmem on both machines are too big to support 1Gbps for 60 msecs delay.

    If i reduce delay to 1msec, I easily get very high throughput and download finishes within 1-3 secs, so appears some buffer issue on the sender (apache) clamping the cwnd.

    Anything else one should check to get cause of the cwnd flatlining during slow start phase itself.

    Thanks in advance
    Krish
     
    Krish, Sep 8, 2015
    #1
    1. Advertisements

  2. Krish

    Rick Jones Guest

    Running which version of the kernel?
    What do you see if you use the likes of netperf or iperf?
    Any packet losses?

    What does the SO_SNDBUF size get to for the connection to Apache?

    rick jones
     
    Rick Jones, Sep 8, 2015
    #2
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.