Farklı kapasitedeki sunucular arasında yükü oransal olarak nasıl dağıtırım?
Kısa cevap
Her Kurum Servisine kapasitesiyle orantılı bir Weight verilir ve vService'te Weight'i kullanan bir algoritma seçilir; en yaygını Weighted Round Robin'dir (Weight'i 4, 2 ve 1 olan üç sunucu trafiğin yaklaşık %57, %29 ve %14'ünü alır). Least Connection, Random, Least Response Time ve Least Bandwidth de Weight'i hesaba katar. Connection Limit zayıf sunucuya kesin bir tavan koyar, First algoritması sunucuları sırayla doldurur. Varsayılan Round Robin Weight'i yok saydığı için yalnızca Weight girmek yetmez.
Sorun: Sunucular Aynı Güçte Değil
Sunucu çiftliklerinde donanımı farklı sunucular bir arada bulunur: yeni ve güçlü sunucular eskileriyle birlikte çalışır ya da bir sunucu başka işlerle paylaşılır. Trafik eşit bölünürse zayıf sunucu yavaşlar, güçlü sunucunun kapasitesi boşa kalır. TR7'de varsayılan algoritma olan Round Robin Weight değerlerini yok sayar; Weight girilse bile algoritma değiştirilmeden dağılım eşit kalır.
Çözüm: Beş Yöntem
Yöntemler birbirinin alternatifidir; Yöntem 2 (Connection Limit) diğerleriyle birlikte de kullanılabilir.
| Durumunuz | Uygun yöntem |
|---|---|
| HTTP ya da L7 TCP; sunucuların payı kapasiteyle orantılı olsun | Yöntem 1: Weight + Weight'i kullanan algoritma |
| Zayıf sunucunun eşzamanlı bağlantı sayısına kesin bir üst sınır konsun | Yöntem 2: Connection Limit |
| Oran yerine sunucular sırayla doldurulsun, fazla sunucular boşta kalsın | Yöntem 3: First + Connection Limit |
| Network vService | Yöntem 4: Network vService'te Weighted Round-Robin / Weighted Least-Connection |
| Ayarlar komut satırından yapılsın | Yöntem 5: WEB-CLI |
Yöntem 1: Weight + Weight'i Kullanan Algoritma Önerilen
- Nasıl çalışır Her sunucunun Weight'i payını belirler (pay = Weight ÷ toplam Weight). Seçilen algoritma Weight'i kendi ölçütüne katar: Weighted Round Robin sırayla, Least Connection açık bağlantı sayısını Weight'e oranlayarak, Random adayları Weight oranında çekerek, Least Response Time ve Least Bandwidth ölçütü Weight'e bölerek dağıtır.
- Nerede açılırLoad Balancer → Backend Services → Details → Weight; vService → Details → LB Algorithm → Algorithm
- Gereksinim Her Kurum Servisine Weight değeri (1–256; boş bırakılırsa varsayılan 1)
- vService tipi HTTP, L7 TCP
- Kurum Servisi tarafı Sunucularda değişiklik gerekmez.
| Algoritma | Ne zaman |
|---|---|
| Weighted Round Robin | Kısa, benzer istekler; sabit oran yeterli |
| Least Connection | Uzun ya da süresi değişken bağlantılar |
| Random | Büyük ya da sık ölçeklenen sunucu havuzu |
| Least Response Time / Least Bandwidth | Sunucuların yanıt hızı ya da bant genişliği belirleyici; vService'in Core Engine sürümü desteklemiyorsa Least Connection olarak uygulanır |
Adım adım yapılandırma
Sunucuların kapasitesine göre oran belirlenir (ör. çekirdek sayısı ya da yük testiyle ölçülen istek/saniye): güçlü sunucuya 4, orta sunucuya 2, zayıf sunucuya 1.
Load Balancer → Backend Services adımları izlenir, listeden Kurum Servisi seçilir ve Edit butonuna tıklanır. Backend Group kullanılıyorsa Load Balancer → Backend Groups ekranında grup aynı şekilde düzenlemeye açılır.
Formdaki Details anahtarı açılır ve Weight alanına değer girilir. Backend Group'ta değer, Backends tablosunda her sunucu satırına ayrı girilir.
Formun altındaki Edit butonuna tıklanır. 2–4. adımlar her Kurum Servisi için tekrarlanır.
Load Balancer → Load Balancer vService List adımları izlenir, vService seçilir ve Edit butonuna tıklanır.
Formun sağ üstündeki Details anahtarı açılır ve yan paneldeki LB Algorithm kutusu işaretlenir.
Algorithm listesinden Weighted Round Robin (ya da yukarıdaki tablodan duruma uygun, Weight'i kullanan algoritma) seçilir. Least Response Time seçilirse Time Metric (varsayılan Total Time), Least Bandwidth seçilirse Bandwidth Window (varsayılan 10 saniye) alanı açılır.
Save butonuna tıklanır. Değişikliğin uygulanması ekranın sağ altındaki senkron göstergesinden izlenir. Cluster kurulumunda varsayılan auto-sync ile değişiklik eş cihaza da gönderilir; Manual Sync Mode açıksa Synchronize ile elle gönderilir.
Doğrulama
vService'in Live Stats ekranında Backend Services tablosundaki istek/bağlantı sayıları ve ad hücresindeki W= eki karşılaştırılır.
Dağılım Weight oranında; W= ekleri girilen değerlerle aynıvService'in Load Balancer Management ekranındaki LB Algorithm bölümü okunur.
Seçilen algoritmanın adı ve açıklamasıYöntem 2: Connection limit
- Nasıl çalışır Kurum Servisinin aynı anda taşıyacağı bağlantı sayısına kesin bir tavan konur; limit dolunca yeni bağlantılar aynı vService'teki diğer sunuculara gider. Her algoritmayla birlikte kullanılabilir.
- Nerede açılırLoad Balancer → Backend Services → Details → Connection Limit
- Gereksinim Sunucunun kaldırabileceği eşzamanlı bağlantı sayısının bilinmesi
- vService tipi Tümü (Network vService'te Protocol ANY - L3 seçiliyse ya da Port Range açıksa uygulanmaz)
- Kurum Servisi tarafı Sunucularda değişiklik gerekmez.
Adım adım yapılandırma
Zayıf sunucunun güvenle taşıyabileceği eşzamanlı bağlantı sayısı belirlenir.
Load Balancer → Backend Services adımları izlenir, Kurum Servisi seçilir ve Edit butonuna tıklanır.
Details anahtarı açılır ve Connection Limit alanına değer (1–65535) girilir. Alan boş bırakılırsa bağlantı sayısı sınırlanmaz.
Formun altındaki Edit butonuna tıklanır. HTTP ve L7 TCP vService'te bütün sunucular limitteyse yeni istekler kuyrukta bekler; Queue Timeout (varsayılan 60 saniye) dolarsa HTTP vService istemciye 503 döner, L7 TCP vService bağlantıyı kapatır.
Doğrulama
Yoğun trafikte vService'in Live Stats ekranında sunucunun Current Sessions değeri izlenir.
Current Sessions ≤ Connection LimitYöntem 3: First + Connection limit
- Nasıl çalışır Listedeki ilk sunucu Connection Limit'ine ulaşana kadar bütün yükü alır, sonra sıradakine geçilir. Oransal değil, sırayla doldurma yaklaşımıdır; Weight kullanılmaz.
- Nerede açılır vService → Details → LB Algorithm → Algorithm → First
- Gereksinim Her Kurum Servisinde Connection Limit tanımlı olması
- vService tipi HTTP, L7 TCP
- Kurum Servisi tarafı Sunucularda değişiklik gerekmez.
Adım adım yapılandırma
Her Kurum Servisine Yöntem 2'deki gibi kapasitesine göre Connection Limit verilir: güçlü sunucuya yüksek, zayıf sunucuya düşük değer. Limit girilmeyen sunucunun tavanı olmaz; ilk sunucuda limit yoksa bütün trafik o sunucuda kalır.
Load Balancer → Load Balancer vService List adımları izlenir, vService seçilir ve Edit butonuna tıklanır.
Formun sağ üstündeki Details anahtarı açılır ve yan paneldeki LB Algorithm kutusu işaretlenir.
Algorithm listesinden First seçilir.
Save butonuna tıklanır.
Doğrulama
Live Stats'ta ilk sunucu limitine ulaşmadan diğerlerine oturum gitmediği görülür.
Sunucular sırayla dolarYöntem 4: Network vService'te Weighted Round-Robin / Weighted Least-Connection
- Nasıl çalışır Network vService'te Weight'e göre oransal dağıtım Weighted Round-Robin ya da Weighted Least-Connection ile yapılır (Locality-Based Least-Connection ve Source Hash de Weight'i hesaba katar). Connection Limit'i dolan sunucuya yeni bağlantı gönderilmez.
- Nerede açılır Network vService → Details → LB Algorithm
- Gereksinim Her Kurum Servisine Weight değeri
- vService tipi Network
- Kurum Servisi tarafı Seçilen LB Mode'un gereksinimleri dışında değişiklik gerekmez.
Adım adım yapılandırma
Kurum Servislerine Yöntem 1'in 1–4. adımlarındaki gibi kapasiteyle orantılı Weight verilir.
Load Balancer → Load Balancer vService List adımları izlenir, Network vService seçilir ve Edit butonuna tıklanır.
Formun sağ üstündeki Details anahtarı açılır ve yan paneldeki LB Algorithm kutusu işaretlenir.
Algoritma listesinden Weighted Round-Robin ya da Weighted Least-Connection seçilir. Weighted Least-Connection yalnızca Protocol TCP - L4 ya da UDP - L4 iken listelenir. Protocol ANY - L3 seçiliyse ya da Port Range açıksa yalnızca Weighted Round-Robin Weight'i uygular ve Connection Limit kullanılmaz.
Save butonuna tıklanır. Network vService'te her kayıt vService'i yeniden başlatır (Network vService · Save); değişiklik düşük trafikli bir zamanda yapılır.
Doğrulama
vService'in Live Stats ekranında Kurum Servislerinin New Connection/s değerleri karşılaştırılır.
Bağlantılar Weight oranındaYöntem 5: WEB-CLI
- Nasıl çalışır Weight, Connection Limit ve algoritma komut satırından yazılır.
- Nerede açılırWEB-CLI →
lb backend update/lb service update - Gereksinim WEB-CLI erişimi; Kurum Servisi ve vService kimlikleri (
lb backend listvelb service listile görülür) - vService tipi Tümü
Adım adım yapılandırma
Her Kurum Servisi için Weight ve Connection Limit yazılır; <backend> yerine Kurum Servisinin kimliği yazılır:
lb backend update id <backend> --weight 4 --connLimit 2000HTTP ve L7 TCP vService'te --algorithm alanına Weight'i kullanan algoritma yazılır. roundrobin Weighted Round Robin'dir (Weight'siz sürüm roundrobinNoWeight):
lb service update id <vService> --algorithm roundrobinNetwork vService'te --l4Algorithm alanına wrr (Weighted Round-Robin) ya da wlc (Weighted Least-Connection) yazılır:
lb service update id <vService> --l4Algorithm wrrDoğrulama
Kurum Servisi kaydı görüntülenir.
lb backend show <backend>weight ve connLimit alanları girilen değerlerle aynıSık Yapılan Hatalar
- Weight girip algoritmayı Round Robin'de bırakmak. Varsayılan Round Robin Weight'i yok sayar; dağılım eşit kalır.
- WEB-CLI'da
roundrobin'i Weight'siz sanmak.roundrobinWeighted Round Robin'dir. - Fastest / Fastest+ ile Weight beklemek. Bu iki algoritma Weight'e bakmaz; seçilen metrikte en iyi sunucuyu seçer.
- First'ü Connection Limit olmadan kullanmak. İlk sunucunun tavanı olmadığı için bütün trafik ilk sunucuda kalır.
- Weight'e 0 yazmak. En düşük değer 1'dir; sunucuyu trafikten çıkarmak için Maintenance Mode kullanılır (Network vService'te Maintenance Mode uygulanmaz; Kurum Servisi vService'in Backend Services listesinden çıkarılır).
Dokümantasyonda nasıl yapılır
