Semih YILMAZ

Http Load Balancers

Bir sunucunun tüm yükü karşılayamadığı, gelen talepleri belirli kurallara göre dağıttığı yapıdır.

Load balancer yapısına çalıştığımız bir proje üzerinde gereksinim duyduk. Şöyle ki; Sunucu’nun üzerinde çok fazla request geziniyordu. Yoğun response’lar sonucunda Apache Workers’ları çok fazla kaynak tüketip, hele de Mysql Instance’ı da bu sunucuda olunca, çoğu zaman sunucu ağlıyordu. Response süreleri çok uzuyor, sunucu cevap veremez hale geliyordu.

İlk iş olarak hizmet daldığımız Bulut Hizmetçisi’nden bir donanımsal Load Balancer(Yazılımsal olanları da var.) hizmeti aldık.

Daha sonra anasunucu’dan replike bir sunucuda daha kurduk.

S1 ve S1 olmak üzere iki uygulama sunucumuz oldu. L isminde de bir Load Balancer’ımız oldu.

Kaynak cevap sürelerine baktım.

Load Balancer Response Time : 40ms

S1:45ms

S2:55ms

Şimdi gelelim katma değerlerine;

domain.com -> L ip’sine yönlendirildi.

L ise Round Robin(*) algoritması ile S1 ve S2 sunucusuna yük dağıtıyor.

Buradan basit bir matematik ile bakınca sunucu response time’larımız sırf Load Balancer ile %12.5 arttı.

Daha da güzel olsun diye; Bir de Database Cluster yapısı kurduk. Sunucu üzerindeki database instance’larını susturup, DB Cluster’a aldık. DB cluster yapımız ise ; primary + standby olarak yapılandırdık.Hem bir fail over hem de performans katkısı sağladık.

Gelelim Load Balancer Yük Dağıtma Algoritmaları‘na

  1. Round Robin : Gelen istekleri 1 ona – 1 ona şeklinde dağıtır.
  2. Least Connection : Sunucu üzerinde ki istek sayısına göre yönlendirir. FIFO( first in first out) mantığıyla çalışır.

İyi Çalışmalar.

Exit mobile version