Octavia should not disable TCP Selective ACKnowledgements or Timestamps

Bug #1661105 reported by rick jones
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
octavia
Fix Released
High
Michael Johnson

Bug Description

While troubleshooting some problems various, it became known to the submitter that Octavia seems to want to have its images built with a number of non-default sysctl settings for TCP. In particular:

sysctl-write-value net.ipv4.tcp_timestamps 0
sysctl-write-value net.ipv4.tcp_ecn 0
sysctl-write-value net.ipv4.tcp_sack 0
sysctl-write-value net.ipv4.tcp_dsack 0

Disabling tcp_timestamps and tcp_sack severely cripples TCP's ability to recover from non-trivial losses in a given window. Coupled with Octavia using a 50 second client and server timeout, such non-trivial losses result in a situation like that shown in candidate.png. While candidate.png isn't from an actual Octavia/haproxy connection, it is from one where Octavia's desired sysctl settings have "leaked out" onto the client system.

The non-trivial packet loss gets recovered only after retransmission timeouts, and without SACK and timestamps, that RTO cannot reset, so it continues to grow. Ultimately it hits the haproxy client/server timeout setting, at which point haproxy determines insufficient forward progress and terminates the connection with extreme prejudice. The client then sees a connection reset by peer error.

Octavia should stop disabling Selective ACKnowledgement and Timestamps.

Revision history for this message
rick jones (perfgeek) wrote :
rick jones (perfgeek)
description: updated
Changed in octavia:
importance: Undecided → High
status: New → Triaged
Changed in octavia:
assignee: nobody → Michael Johnson (johnsom)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to octavia (master)

Fix proposed to branch: master
Review: https://review.openstack.org/427957

Changed in octavia:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to octavia (master)

Reviewed: https://review.openstack.org/427957
Committed: https://git.openstack.org/cgit/openstack/octavia/commit/?id=6eb9a7cf17bc5ec2f36f4b780634d14b1471993f
Submitter: Jenkins
Branch: master

commit 6eb9a7cf17bc5ec2f36f4b780634d14b1471993f
Author: Michael Johnson <email address hidden>
Date: Wed Feb 1 14:41:48 2017 -0800

    Remove outdated kernel tuning for haproxy

    This patch removes outdated kernel tuning parameters that were set
    inside the amphora. With current kernel versions the performance
    issues no longer out weigh the benefits.

    Change-Id: I6435257ec1f0ee0cc8c38df0d1ff0247707174e4
    Closes-Bug: #1661105

Changed in octavia:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/octavia 0.10.0

This issue was fixed in the openstack/octavia 0.10.0 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to octavia (stable/newton)

Fix proposed to branch: stable/newton
Review: https://review.openstack.org/431251

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to octavia (stable/newton)

Reviewed: https://review.openstack.org/431251
Committed: https://git.openstack.org/cgit/openstack/octavia/commit/?id=c4f0002e9a2dff8eb2f844fd9c15ffb611a00828
Submitter: Jenkins
Branch: stable/newton

commit c4f0002e9a2dff8eb2f844fd9c15ffb611a00828
Author: Michael Johnson <email address hidden>
Date: Wed Feb 1 14:41:48 2017 -0800

    Remove outdated kernel tuning for haproxy

    This patch removes outdated kernel tuning parameters that were set
    inside the amphora. With current kernel versions the performance
    issues no longer out weigh the benefits.

    Change-Id: I6435257ec1f0ee0cc8c38df0d1ff0247707174e4
    Closes-Bug: #1661105
    (cherry picked from commit 6eb9a7cf17bc5ec2f36f4b780634d14b1471993f)

tags: added: in-stable-newton
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/octavia 0.9.2

This issue was fixed in the openstack/octavia 0.9.2 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.