Başlıkta söylediklerini yapmaya çalışmak: mevcut oturumları yüksek yük altında tutmak ve yeni gelen ziyaretçilere 503 mesaj sunmak.
Sorun: işe yarıyor, ancak oturumlar yaklaşık 90 saniyeden fazla sürmüyor.
Mevcut sonuçlar beni kaçırdığım bir zaman aşımı ayarı olup olmadığını merak ediyor.
amaç
Aşağıdakilere haproxy almaya çalışıyorum:
- ön uçtaki toplam oturum sayısı belirli bir eşiğin altında olduğunda, yeni oturum isteklerini arka uç-001'e gönderin.
- kullanıcı arabirimindeki toplam oturum sayısı bu eşiğin üstünde olduğunda yeni oturumlara 503 hatası verir
- oturum sayısı eşiği aşsa bile mevcut oturumlar için isteklere izin ver
Bu şekilde, çok adımlı bir form doldurmanın ortasında olan ziyaretçiler 503 hatasıyla şaşırmayacak ve yeni ziyaretçilere "lütfen daha sonra geri dönün çünkü şu anda gerçekten meşgulüz" diyebilir.
Kurmak
Kurulum aşağıdaki gibidir:
{visitors}
↓
[haproxy]
↓
[rails app on unicorn served by nginx] (right now just one
backend: 'backend-001')
mevcut yaklaşım
Yukarıdakilere ulaşmak için, aşağıdaki yapılandırmayı kullanıyorum.
Bu, testi kolaylaştırmak için çok düşük bir limite sahip (ön uçta 10 bağlantı (fe_conn gt 10)) test içindir.
Sunucuyu biraz yük altına almak için httperf'i aşağıdaki gibi kullanıyorum:
httperf --hog --server staging.machine.tld --uri / do_some_things --wsess = 500,10,30 - oran 2
global
daemon
maxconn 10000
defaults
mode http
timeout connect 6s
timeout client 60s
timeout server 60s
balance roundrobin
option http-server-close
frontend http-in
bind [PUBLIC_IP]:80
default_backend backend-001
acl too_many fe_conn gt 10
use_backend b_too_many if too_many
backend backend-001
fullconn 10
appsession _session_id len 128 timeout 7200s
cookie SERVERID insert maxidle 7200s
server Server1 127.0.10.1:80 cookie backend-001 check
backend b_too_many
errorfile 503 /var/www/50x.html
sorun
Yukarıda belirtildiği gibi, sorun: neredeyse işe yarıyor, ancak oturumlar yaklaşık 90 saniyenin ötesinde sürmüyor.
Tıklamaya devam ederseniz, 10 oturum meşgul olduğunda bile oturumunuzu sürdürürsünüz.
Sunucuda farklı bir tarayıcı örneğiyle bir sayfa açmaya çalışmak size 503 hatası verir.
Yani, neredeyse oradaymışım gibi görünüyor. Kısa oturum sürelerine neyin sebep olabileceği hakkında bir fikri olan var mı?
Ve özellikle nasıl düzeltebilirim :)
(değiştir: 'ağırlık 1 maks. bağlantı 10'u' sunucu 'satırından kaldırıldı, alakalı değil ve kafa karıştırıcı olabilir) (2.: ön uçtaki' 10 oturumu düzeltildi 'ile ön uçtaki '10 bağlantıyı düzenleyin')