Başıma gelen bir problemden ve çözümünden kısaca bahsedeyim. Bir load balancerım ve arkasında sunucularım vardı. Aradan loadbalancerı çıakrttığımda 10 milisaniyede cevap veren servislerim, loadbalancer koyduğumda 30-40 saniye bandına çıkıyordu. Loadbalancer'ın tüm configleri düzgün ve best practice'e uygundur.
Sonunda sorunu tespit ettik. Sunucularımız Hyper-v platformundan hizmet alan sanal sunuculardı. Loadbalancer'ımız ise Netscaler idi(F5 değil). Meğer Netscaler ile Hyper-v platformu arasında bonding ya da teaming denilen bir problem varmış. Özetle sorun şu: LoadBalancer arkasındaki sunuculara giderken, aynı sunucu için farklı MAC adresleri görüyorduk. Yani bir LB, bir MAC ile bir sunucuma gidiyor. Sunucum başka bir MAC üstünden cevap veriyor. Sonra LB yeni gelen MAC üstünden tekrar sunucuma geliyor, Sunucumun da kafası karışıyor, bekletme sürecinden sonra cevap veriyor. Hyper-v fiziksel sunucusunun MACi oluyor bu aslında. Bu iki MAC'i tek bir MACmiş gibi davranmasını sağlamalıyız.
Konfigürasyonu aşağıdaki gibi aktif-pasif yapıp, loadbalancing mode: hyper-v port balancing seçilmeli.
Sonrasında uygulamalara restart atıp denediğinizde, webservisinizin loadbalancer ile de birkaç milisaniyede cevap verdiğiin göreceksiniz.
Sonra görüşürüz.
Hiç yorum yok:
Yorum Gönder