Improve HaProxy performance for cinder/glance and etc

Bug #1420710 reported by Alexander Nevenchannyy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mirantis OpenStack
Fix Released
High
Bartłomiej Piotrowski
5.0.x
Won't Fix
High
Fuel Library (Deprecated)
5.1.x
Fix Committed
High
Bartłomiej Piotrowski
6.0.x
Fix Committed
High
Bartłomiej Piotrowski
6.1.x
Fix Released
High
Bartłomiej Piotrowski

Bug Description

In current configuration HaProxy must saturating bandwidth at ~1-1.5Gbp/s of bandwidth (depended of packet size and CPU performance). More info at http://www.haproxy.org/#perf

So i'm think, that we must add 'option splice-response ' to haproxy configs, for use zero-copy forwarding tech provided by splice() system call under Linux. More info at http://www.haproxy.org/10g.html

Changed in mos:
milestone: none → 6.1
assignee: nobody → Fuel Library Team (fuel-library)
status: New → Triaged
importance: Undecided → High
Changed in mos:
assignee: Fuel Library Team (fuel-library) → Bartlomiej Piotrowski (bpiotrowski)
Revision history for this message
Alexander Nevenchannyy (anevenchannyy) wrote :

Also intresting

option splice-auto
no option splice-auto
  Enable or disable automatic kernel acceleration on sockets in both directions
  May be used in sections : defaults | frontend | listen | backend
                                 yes | yes | yes | yes
  Arguments : none

  When this option is enabled either on a frontend or on a backend, haproxy
  will automatically evaluate the opportunity to use kernel tcp splicing to
  forward data between the client and the server, in either direction. Haproxy
  uses heuristics to estimate if kernel splicing might improve performance or
  not. Both directions are handled independently. Note that the heuristics used
  are not much aggressive in order to limit excessive use of splicing. This
  option requires splicing to be enabled at compile time, and may be globally
  disabled with the global option "nosplice". Since splice uses pipes, using it
  requires that there are enough spare pipes.

http://www.haproxy.org/download/1.4/doc/configuration.txt

Revision history for this message
Bartłomiej Piotrowski (bpiotrowski) wrote :

This is what I'm going to send for review in 2 minutes. I think it's better than assuming superiority of splice(2) in every case.

Revision history for this message
Bartłomiej Piotrowski (bpiotrowski) wrote :
Revision history for this message
Bartłomiej Piotrowski (bpiotrowski) wrote :
Revision history for this message
Bartłomiej Piotrowski (bpiotrowski) wrote :
Revision history for this message
Alexander Nevenchannyy (anevenchannyy) wrote :

Verified on MOS 6.1 ISO #429
Steps to Verify:

root@node-1:~# grep -r splice /etc/haproxy/
/etc/haproxy/haproxy.cfg: option splice-auto

Roman Rufanov (rrufanov)
tags: added: customer-found support
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.