Bandwidth Limitation
Bandwidth Limitation Aksiyonu Nedir?
Bandwidth Limitation aksiyonu, vService'lere gelen ve giden trafiğin bant genişliğini kontrol altına almak için kullanılır. Download (indirme) ve upload (yükleme) trafiği için ayrı ayrı limitler tanımlanabilir.
Bu aksiyon yalnızca istek (request) aşamasında çalışır ve koşullarla birlikte kullanılarak belirli trafik türlerine veya kullanıcı gruplarına özel limitler uygulanabilir.
Bandwidth Limitation Aksiyonunun Önemi
Bandwidth limitleme, ağ kaynaklarının adil ve verimli kullanımını sağlamak için kritik bir trafik yönetimi mekanizmasıdır.
Bandwidth Limitation aksiyonu;
- Ağ kaynaklarının adil dağılımını sağlar,
- Tek bir kullanıcının tüm bant genişliğini tüketmesini engeller,
- Kritik servislere öncelik verilmesini mümkün kılar,
- Dosya indirme ve video streaming trafiğini kontrol altına alır,
- API servisleri için bant genişliği bazlı rate limiting imkanı sunar,
- Farklı kullanıcı gruplarına farklı hız seviyeleri sunulmasını sağlar.
Bu nedenle Bandwidth Limitation aksiyonu, ağ kaynaklarının etkin yönetimi için vazgeçilmez bir araçtır.
Limitleme Modları
Bu aksiyon iki farklı limitleme modu sunar.
| Mod | Açıklama |
|---|---|
| Dynamic | Belirlenen anahtar(lar)a göre gruplandırılmış istekler için ortak limit uygulanır. Örneğin, aynı IP adresinden gelen tüm istekler toplam limiti paylaşır. En az bir anahtar gerektirir. |
| Stream | Her bir akış (stream) için ayrı limit uygulanır; keep-alive bir bağlantıdaki her istek ayrı bir akıştır. Her akış kendi limitini bağımsız kullanır. |
Limitleme, saniye başına transfer edilen veri miktarı üzerinden hesaplanır. Limit aşıldığında trafik yavaşlatılır (throttle), tamamen engellenmez.
Kullanılabildiği vService Tipleri
Çalışma Anı
Nasıl Eklenir?
Yeni bir Bandwidth Limitation Aksiyonu, TR7 web yönetim arayüzü üzerinden aşağıdaki adımlar izlenerek eklenebilir:
- Sol altta bulunan TR7 logosuna tıklanarak Configuration Menu açılır.
- Load Balancer → Actions → Add adımları takip edilir.
- Aksiyon için benzersiz ve açıklayıcı bir isim girilir.
- Action Type olarak Bandwidth Limitation seçilir.
- Aksiyona ait ilgili konfigürasyonlar yapılandırılır.
- Conditions sekmesinden aksiyonun hangi koşul/koşullarda devreye gireceği belirlenir.
Addbutonuna tıklanarak aksiyon eklenir.
Bandwidth Limitation Aksiyonu Ekleme Formu
Bandwidth Limitation Aksiyonu Ekleme Formu
INFO
Key
Limit Type alanında Dynamic seçildiğinde görünür. Alan, varsayılan olarak Source client IP değişkeniyle dolu gelir.
Değişken satırına (veya fx butonuna) tıklandığında Değişken ekle / Değişken düzenle penceresi açılır. Bu pencerede Değişken adı aranabilir listeden seçilir, değişken argüman alıyorsa (başlık adı, çerez adı vb.) ilgili alan doldurulur, gerekiyorsa Fonksiyondan geçir ile akıllı fonksiyon zinciri tanımlanır; Özet alanında oluşan ifadenin önizlemesi görülür ve Gönder ile alana yazılır.
Limitleme gruplarını oluşturmak için kullanılacak anahtar değişkenleri bu alandan seçilir. Aynı anahtar kombinasyonuna sahip istekler, tanımlanan limiti paylaşır.
DANGER
Limit Type olarak Dynamic seçildiğinde en az bir anahtar tanımlanmalıdır. Anahtar tanımlanmadan oluşturulan Dynamic mod kuralları çalışmaz ve sessizce atlanır. Dynamic modda aynı anda en fazla 100.000 farklı anahtar izlenir; bir anahtarın hız kaydı, trafiği kesildikten 1 saat sonra düşer.
Smart Variables kullanılarak dinamik gruplama yapılabilir. Örneğin:
- İstemci IP adresi: İstemci IP'sine göre gruplama
- İstemci Port numarası: İstemci portuna göre gruplama
- İsteğin yapıldığı dizin/sayfa: İstek path'ine göre gruplama
- İstek Başlık bilgisi: Belirli bir header değerine göre gruplama
Birden fazla anahtar eklenebilir:
Birden Fazla Key Seçimi Örneği
Birden fazla anahtar eklendiğinde, tüm anahtarların kombinasyonu benzersiz grup tanımlayıcısı olarak kullanılır.
TIP
Bu alan Smart Variables destekler. fx butonu ile mevcut değişkenlere erişilebilir ve dinamik içerik oluşturulabilir.
Detaylı bilgi Variables sayfasında yer alır.
INFO
Download Limit
İstemciye gönderilen (download) trafiğin maksimum hızı bu alandan belirlenir. Değer girildikten sonra birim seçimi yapılabilir:
- Kbps: Kilobit/saniye
- Mbps: Megabit/saniye
- Gbps: Gigabit/saniye
Değer tamsayı olarak girilir; aralık 1 Kbps – 32 Gbps'dir. Birim çarpanları ikilidir: 1 Mbps = 1024 Kbps, 1 Gbps = 1024 Mbps (birim kutusunun varsayılanı Kbps'dir).
INFO
Upload Limit
İstemciden alınan (upload) trafiğin maksimum hızı bu alandan belirlenir. Değer girildikten sonra birim seçimi yapılabilir:
- Kbps: Kilobit/saniye
- Mbps: Megabit/saniye
- Gbps: Gigabit/saniye
WARNING
Download Limit ve Upload Limit'in ikisi birden boş bırakılamaz: en az bir limit girilmelidir; form aksi durumda kaydetmeye izin vermez.
INFO
Limit Type Varsayılan: Dynamic
Limitleme modunun seçildiği alandır.
- Dynamic: Bu modda, belirlenen anahtar(lar)a göre gruplandırılmış istekler için ortak limit uygulanır. Aynı anahtar kombinasyonuna sahip tüm bağlantılar, tanımlanan limiti paylaşır. Bu mod, kullanıcı veya IP bazlı adil bant genişliği dağılımı için idealdir. Örnek: IP bazlı 10 Mbps limit tanımlandığında, aynı IP'den gelen tüm eşzamanlı bağlantılar toplam 10 Mbps'i paylaşır.
- Stream: Bu modda, her bir akış (stream) için ayrı limit uygulanır; keep-alive bir bağlantıdaki her istek ayrı bir akış sayılır. Bu mod, akış başına sabit hız garantisi gereken senaryolar için uygundur. Örnek: 10 Mbps limit tanımlandığında, her akış bağımsız olarak 10 Mbps'e kadar hız alabilir.
INFO
Conditions
Bu alanda, ilgili aksiyonun hangi koşul veya koşullar sağlandığında devreye gireceği tanımlanır.
Bir veya birden fazla koşul eklenerek, and/or yapısı ile davranışın hedefli ve kontrollü şekilde uygulanması sağlanabilir.
Koşullar hakkında detaylı bilgi Conditions sayfasında yer alır.
WARNING
Bu alanda herhangi bir koşul tanımlanmazsa, ilgili aksiyon koşulsuz (Always) olarak çalışır. Bu durumda aksiyon, ilgili vService'e gelen tüm trafiğe uygulanır.
Canlı ortamlarda, koşul tanımlanmadan aksiyon kullanılması beklenmeyen durumlara (servis kesintilerine) yol açabilir. Bu nedenle aksiyon oluşturulurken mutlaka en az bir koşul tanımlanması önerilir.
INFO
Form Butonları
Add
Add butonuna tıklanarak aksiyon ekleme işlemi tamamlanır.
Add & Repeat
Add & Repeat butonu ile aksiyon ekleme işlemi tamamlanır ve farklı konfigürasyonlarla ilgili pencereden çıkılmadan yeni bir aksiyon daha eklenebilir.
Aksiyon Eklendi
Operasyonel ve Güvenli Kullanım Önerileri
Doğru mod seçilir:
| Senaryo | Önerilen Mod |
|---|---|
| Kullanıcı başına adil paylaşım | Dynamic (IP bazlı) |
| Bağlantı başına sabit hız | Stream |
| API rate limiting | Dynamic (API key veya user ID bazlı) |
| Video streaming | Stream |
- Gerçekçi Limitler Belirleyin. Çok düşük limitler kullanıcı deneyimini olumsuz etkiler, çok yüksek limitler ise etkisiz kalır. Mevcut trafik paternlerini analiz ederek optimum değerleri belirleyin.
- Koşullarla birlikte kullanılır. Tüm trafiğe limit uygulamak yerine belirli path'lere, içerik türlerine ya da kullanıcı gruplarına hedefli limitler tanımlanır.
- Dynamic Modda Anahtar Seçimini İyi Yapın. Yalnızca IP: en yaygın kullanım, kullanıcı başına limit. IP + Path: aynı kullanıcının farklı kaynaklara farklı limitlerle erişimi. User ID/Session: oturum bazlı daha hassas kontrol.
- Download ve Upload Ayrımını Değerlendirin. Çoğu web uygulamasında download trafiği upload'dan çok daha yoğundur. Genellikle download limiti daha kritiktir, ancak dosya yükleme özellikleri olan uygulamalarda upload limiti de önemlidir.
- Monitoring ile birlikte kullanılır. Bandwidth limitleme aksiyonlarının etkisi vService canlı istatistikleri ve loglar üzerinden gözlemlenir (bu aksiyonun kendine ait bir isabet sayacı yoktur). Limitlerin sıklıkla aşılıp aşılmadığı kontrol edilir.
Canlı Ortamlarda Yaygın Kullanım Senaryoları
Aşağıdaki örnekler, ilgili aksiyonun gerçek sistemlerde en sık karşılaşılan kullanım senaryolarında nasıl uygulandığını göstermektedir. Bu senaryolar, canlı ortamlarda yaygın olarak tercih edilen ve sahada edinilmiş deneyimlere dayanan pratikleri temel alır.
Senaryo 1: Kullanıcı Başına Dosya İndirme Hız Kısıtlama
Problem: Bazı kullanıcılar büyük dosyaları indirerek tüm bant genişliğini tüketiyor ve diğer kullanıcıların erişimi yavaşlıyor. Ağ kaynakları adil dağıtılmıyor.
Çözüm: Her kullanıcıya (IP bazlı) /downloads/ path'i için maksimum 10 Mbps download limiti uygulayarak adil paylaşım sağlayın.
Konfigürasyon:
- Key: Smart Variables (fx) butonundan İstemci IP adresi değişkeni seçilir
- Download Limit:
10 Mbps - Upload Limit: Boş (upload sınırı yok)
- Limit Type: Dynamic
- Conditions: Path STARTS WITH
/downloads/
Sonuç:
- ✅ /downloads/ path'ine yapılan istekler → Her IP adresi maksimum 10 Mbps hız ile download yapar.
- ✅ Ağ kaynakları → Adil şekilde dağıtılır, tek kullanıcı tüm bandı tüketemez.
- ❌ /downloads/ dışındaki path'ler → Bandwidth limiti uygulanmaz, normal hızda çalışır.
Senaryo 2: API Endpoint Bandwidth Koruması
Problem: API endpoint'lerine yapılan büyük data export istekleri Kurum Servisini ve network'ü aşırı yüklüyor. Bazı kullanıcılar sürekli büyük veri setleri çekiyor.
Çözüm: API export endpoint'lerine IP bazlı bandwidth limiti uygulanarak hem download hem upload trafiği kontrol altına alınır.
Konfigürasyon:
- Key: Smart Variables (fx) butonundan İstemci IP adresi değişkeni seçilir
- Download Limit:
5 Mbps - Upload Limit:
2 Mbps - Limit Type: Dynamic
- Conditions:
Sonuç:
- ✅ /api/export veya /api/bulk-download istekleri → Her IP için 5 Mbps download, 2 Mbps upload limiti uygulanır.
- ✅ Kurum Servisi ve network → Aşırı yüklenmeden korunur, stabil kalır.
- ❌ Diğer API endpoint'leri → Bandwidth limiti uygulanmaz.
