haproxy:在高负载下保留现有会话,为新来者提供“ 503”服务
尝试按照标题中的说明进行操作:在高负载下保留现有的会话,并为新到达的访客提供503消息。 问题:它可以工作,但是会话持续时间不会超过90秒。 目前的结果让我想知道是否缺少我想要的超时设置。 目的 我正试图让haproxy达到: 当前端上的会话总数低于特定阈值时,将对新会话的请求发送到backend-001。 当前端上的会话总数超过该阈值时,向新会话提供503错误 即使会话数超过阈值,也允许请求现有会话 这样,正在填写多步骤表单的访客就不会对503错误感到惊讶,并且可以告诉新访客“请稍后再回来,因为我们现在很忙”。 设定 设置如下: {visitors} ↓ [haproxy] ↓ [rails app on unicorn served by nginx] (right now just one backend: 'backend-001') 目前的方法 为了达到上述目的,我使用以下配置。 这是一个测试,具有非常低的限制(前端有10个连接(fe_conn gt 10)),以使测试更加容易。 为了使服务器承受一定的负载,我使用httperf,如下所示: httperf --hog --server staging.machine.tld --uri / do_some_things --wsess = 500,10,30 --rate 2 global daemon maxconn 10000 …