0

I'd like to limit either the number of connections, or limit the weight of the server for a certain period of time after the DOWN->UP transition.

After that period of time, assuming the server is still up, I'd like it to return to the standard number of connections/weight.

Effectively I'm trying to replicate the 'Slow Start' functionality in Citrix Netscaler.

This is to stop flooding a server which has just restarted and hasn't yet fully warmed up.

1 Answers1

2

There is a parameter to set how long this warm-up process happens for backend algorithms that support it.

https://www.haproxy.org/download/1.6/doc/configuration.txt

slowstart <start_time_in_ms>
  The "slowstart" parameter for a server accepts a value in milliseconds which
  indicates after how long a server which has just come back up will run at
  full speed. Just as with every other time-based parameter, it can be entered
  in any other explicit unit among { us, ms, s, m, h, d }. The speed grows
  linearly from 0 to 100% during this time. The limitation applies to two
  parameters :

  - maxconn: the number of connections accepted by the server will grow from 1
    to 100% of the usual dynamic limit defined by (minconn,maxconn,fullconn).

  - weight: when the backend uses a dynamic weighted algorithm, the weight
    grows linearly from 1 to 100%. In this case, the weight is updated at every
    health-check. For this reason, it is important that the "inter" parameter
    is smaller than the "slowstart", in order to maximize the number of steps.

  The slowstart never applies when haproxy starts, otherwise it would cause
  trouble to running servers. It only applies when a server has been previously
  seen as failed.

  Supported in default-server: Yes
  • huh, well, I'll be... I swear I searched for slowstart in the config before posting this. Thanks :) –  Aug 15 '17 at 11:01