Proxy paketlerinde sık gördüğünüz "50K bağlantı", "100 eşzamanlı thread" gibi ifadeler tek bir şeyi anlatır: aynı anda açık tutabileceğiniz TCP bağlantısı sayısı. Bu limit, ne kadar hızlı çalışabileceğinizi doğrudan belirler ve aşıldığında hata mesajları çoğu zaman yanıltıcıdır.
Bu yazıda eşzamanlılığın ne olduğunu, doğru sayının nasıl hesaplandığını ve limit aşımının nasıl teşhis edileceğini ele alıyoruz.
Eşzamanlılık ile İstek Hızı Aynı Şey Değil
İki kavram sürekli karıştırılır:
Little yasasının basit hâli: istek hızı = eşzamanlılık ÷ ortalama istek süresi. 20 eşzamanlı bağlantınız varsa ve her istek ortalama 500 ms sürüyorsa, saniyede 40 istek atabilirsiniz. İstek süresi 2 saniyeye çıkarsa aynı eşzamanlılıkla saniyede yalnızca 10 istek atarsınız.
Yavaş bir proxy, eşzamanlılığı artırmadan işinizi yavaşlatır. Bu yüzden gecikme, çoğu zaman eşzamanlılık limitinden daha belirleyicidir.
Limit Nerede Uygulanır?
Eşzamanlılık limiti tek bir yerde değil, zincirin birkaç noktasında birden vardır:
Kendi tarafınızda 200 thread açmanız, sağlayıcı 50 ile sınırlıyorsa hiçbir işe yaramaz; fazlası kuyrukta bekler veya hata alır.
Limit Aşımının Belirtileri
Eşzamanlılık limitini aştığınızda net bir "limit aşıldı" mesajı almazsınız. Tipik belirtiler şunlardır:
Kritik ayrım: 429 hedeften, bağlantı sıfırlaması proxy'den, EMFILE ise kendi makinenizden gelir. Üçü farklı çözüm ister.
Doğru Eşzamanlılığı Bulma Yöntemi
Teorik hesap yerine deneysel yaklaşım daha güvenilirdir. Aşamalı yükleme testi uygulayın:
Düşükten başlayın
5 eşzamanlı bağlantıyla 200 istek atın. Ortalama süreyi ve başarı oranını kaydedin.
İki katına çıkarın
10, 20, 40, 80… şeklinde ilerleyin. Her adımda aynı ölçümü tekrarlayın.
Kırılma noktasını bulun
Toplam verim (istek/sn) artmayı bırakıp ortalama süre yükselmeye başladığı an, gerçek limitin yakınındasınız demektir.
%70'inde çalışın
Kırılma noktasının yaklaşık %70'ini üretim değeri olarak kullanın. Bu pay, gün içi dalgalanmalara karşı koruma sağlar.
Verim eğrisi 40–80 arasında düzleşirken gecikme fırlıyor. Bu noktadan sonra eşzamanlılığı artırmak yalnızca bekleme süresi ekler.
Bağlantı Havuzu (Keep-Alive) Neden Önemli?
Her istek için yeni TCP ve TLS el sıkışması yapmak, hem gecikme hem eşzamanlılık açısından pahalıdır. Bağlantıyı yeniden kullanmak (keep-alive) aynı eşzamanlılıkla çok daha yüksek verim verir:
İstemci havuzunun boyutu, sağlayıcının izin verdiği eşzamanlılığı aşmamalıdır. Aşarsa fazladan bağlantılar kurulup hemen kapatılır ve el sıkışma maliyeti boşa gider.
Eşzamanlılık ve IP Sayısı İlişkisi
Eşzamanlılığı artırmak, aynı IP'den çıkan istek yoğunluğunu da artırır. Hedef site IP başına hız sınırı uyguluyorsa, tek IP üzerinden eşzamanlılık artışı doğrudan engellenmeye yol açar. Doğru yaklaşım eşzamanlılığı IP sayısıyla birlikte ölçeklemektir.
Hedef başına IP başına 1–2 eşzamanlı bağlantıyı aşmayın. 60 eşzamanlı istek atmak istiyorsanız en az 30–60 farklı çıkış IP'sine ihtiyacınız var. Havuz boyutlandırması için proxy havuzu yazımıza bakın.
Hedef Dostu Hız Yönetimi
Eşzamanlılık kadar önemli bir konu, isteklerin zamana yayılmasıdır. Aynı anda 40 istek göndermek yerine bunları küçük gecikmelerle dağıtmak, hem hedefte daha doğal görünür hem de kuyruk birikmesini önler.
- Jitter ekleyin: Sabit 200 ms yerine 150–350 ms arası rastgele bekleme, robot izini azaltır.
- Token bucket kullanın: Saniyede N istek üreten bir jeton kovası, ani patlamaları engeller.
- Geri çekilme uygulayın: 429 aldığınızda eşzamanlılığı kademeli düşürün, başarı dönünce yavaşça artırın.
- Hedef başına ayrı kuyruk tutun: Bir sitenin yavaşlaması diğerlerini etkilemesin.
Farklı Proxy Türlerinde Tipik Limitler
| Tür | Tipik eşzamanlılık | Sınırlayıcı etken |
|---|---|---|
| Datacenter | Yüksek — yüzlerce | Bant genişliği ve hedef hız sınırı |
| ISP | Orta-yüksek | IP başına hedef toleransı |
| Residential | Orta — plan bazlı | Sağlayıcı hesap kotası |
| Mobil | Düşük | Tek cihaz ve operatör bağlantısı |
Mobil proxyler tek bir fiziksel modem üzerinden çıktığı için doğaları gereği düşük eşzamanlılık sunar; buna karşılık en yüksek güven skoruna sahiptirler. Ayrıntı için mobil proxy yazımıza bakabilirsiniz.
Özet
Eşzamanlılık, hızın tek başına değil; gecikmeyle birlikte belirleyicisidir. Doğru değeri bulmanın yolu deneysel yükleme testinden geçer: verimin düzleşip gecikmenin fırladığı noktayı bulun, %70'inde çalışın. Bağlantı havuzunu bu değere sabitleyin, eşzamanlılığı IP sayısıyla birlikte ölçekleyin ve 429 geldiğinde geri çekilin. Mevcut proxy'lerinizin gecikmesini ölçmek için ping testi ve proxy kontrol araçlarımızı kullanabilirsiniz.