# Konut proxy'ler ile eşzamanlılık ve verim

> Konut proxyler üzerinden kaç eşzamanlı isteğin çalıştırılabileceği: Little kanunu, ana bilgisayar başına limitler, uyarlanabilir eşzamanlılık kodu ve saatlik GB miktarı.

- URL: https://crawlrelay.com/tr/docs/concurrency/
- Son güncelleme: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Geçiş kapısı GB başına ücretlendirir, iş parçacığı başına değil, bu yüzden gerçek sınırınız her hedef sitedir. İhtiyacınız olan verimden eşzamanlılığı belirleyin, ana makine başına sınır koyun ve yanıtlar yavaşlamanız gerektiğini söyleyene kadar devam edin.

**Hızlı cevap — Konut proxy'ler üzerinden kaç eşzamanlı istek gönderilebilir?**

Her hedefin toleransi kadar çok: **CrawlRelay** konut trafiğini GB başına ücretlendirir (50 GB'den itibaren $0,50/GB), iş parçacığı veya bağlantı başına değil. Eşzamanlılığı Little kanunu ile büyüklüğe göre ayarlayın: uçuşta olan istekler = saniyedeki sayfa × sayfa başına saniye, sonra ana makine başına sınır koyun, 2 ila 4 ile başlayın. 429 veya 503 yanıtları görünce azaltın. Kripto ile ödenir, KYC olmadan.

## Eşzamanlılığa hızlı bakış

| Özellik | Değer |
| --- | --- |
| Ücretlendirme | Trafik başına GB; iş parçacıkları ve bağlantılar ücretlendirilmez |
| Boyutlandırma kuralı | Uçuşta olan = verim × gecikme (Little kanunu) |
| Ana makine başına başlangıç noktası | 2–4 paralel istek; küçük siteler için gecikmeli 1 istek |
| Yavaşlamak için işaretler | 429, 503, artan yanıt süreleri, doğrulama sayfaları |
| Bant genişliği hesabı | Saniyedeki sayfa sayısı × sayfa başına bayt × 3.600 = saatte bayt |
| Konut ortalama yanıt süresi | Proxy ağı üzerinde 0,93 sn, gerçek hedeflerde 3,21 sn (Proxyway 2026) |

## İhtiyacım olan verimden eşzamanlılığı nasıl hesaplarım?

Little kanununu kullanın: uçuşta olan istek sayısı, istediğiniz oran ile her isteğin süresinin çarpımıdır. Proxyway'in Proxy Market Research 2026'sı, konut proxy'ler üzerinden gerçek hedeflerde istek başı ortalama 3,21 saniye ölçtü, bu yüzden gerçek siteler için 2 ila 4 saniye planlayın; sadece ağın alt-saniye süresiyle değil.

| Hedef | İstek başına zaman | Uçuşta olan istekler |
| --- | --- | --- |
| Saniyede 5 sayfa | 2 sn | 10 |
| Saniyede 20 sayfa | 2 sn | 40 |
| Saniyede 20 sayfa | 4 sn | 80 |
| Saniyede 100 sayfa | 3 sn | 300 |

Sonra bu istekleri ana makineler arasında dağıtın. 200 site arasında uçuşta 40 istek hafif olur; aynı 40 istek tek bir küçük siteye yük testi olup, site tarafından kabul edilmemiştir.

## Bu verim ne kadar bant genişliği kullanır?

Saniyedeki sayfa sayısını sayfa başına bayt ile çarpın. Saniyede 20 HTML sayfası ve sayfa başı 50 KB ile, tarama saniyede 1 MB taşır, bu saatte 3,6 GB ve günde yaklaşık 86 GB yapar. Render edilmiş sayfa başına 2 MB olursa, aynı oran saniyede 40 MB taşır.

Sonucu planınızın GB başı fiyatı ile çarpın, 50 GB'den itibaren $0,50/GB ve CrawlRelay fiyatıyla saatlik maliyeti bulun. [Bant genişliği hesaplayıcı kılavuzu](https://crawlrelay.com/tr/guides/bandwidth-calculator/) sayfa türüne göre tipik sayfa ağırlıklarını verir.

## Ana makine başına hangi sınırlarla başlamalıyım?

| Hedef | Ana makine başına paralel istekler | İstekler arası gecikme | Notlar |
| --- | --- | --- | --- |
| Küçük site (blog, yerel dükkan) | 1 | 2–5 sn | Varsa robots.txt içindeki `Crawl-delay` kuralına uyun |
| Orta ölçekli site | 2–4 | 0,5–2 s | Yanıt sürelerini izleyin; iki katına çıktığında yavaşlayın |
| CDN içeren büyük platform | 4–16 | AutoThrottle veya uyarlanabilir | 429 ve 5xx oranları sabit kaldığı sürece sadece artırın |
| Genel API | Belirtilen limit | Belirtildiği gibi | Sağlayıcının verdiği API anahtarı ve limitleri kullanın |

## Eşzamanlılığı otomatik olarak nasıl ayarlarım?

Katkısal artış ve çarpımsal azalma kullanın, TCP'nin tıkanıklık için kullandığı kural: temiz yanıt serisinden sonra bir slot ekleyin, 429 veya 503 durumunda limiti yarıya indirin. Aşağıdaki sınırlayıcı her ana bilgisayar için bir limit tutar, her isteği `Retry-After` gecikme için duraklatır, bir kez yeniden dener ve belirlediğiniz tavanı aşmaz. Ağ hataları değer olarak geri döner, bu yüzden bir zaman aşımı topluluğu durdurmaz.

*Python asyncio: httpx ile uyarlanabilir limit*

```python
import asyncio
import random
from urllib.parse import urlsplit

import httpx

PROXY = "http://USERNAME-country-us:PASSWORD@gw.crawlrelay.com:7777"


class AdaptiveLimit:
    """One per host: +1 slot after 20 clean responses, halve on 429/503, pause for Retry-After."""

    def __init__(self, start=2, low=1, high=16):
        self.limit, self.low, self.high = start, low, high
        self.in_flight, self.clean = 0, 0
        self.pause_until = 0.0
        self.cond = asyncio.Condition()

    async def __aenter__(self):
        loop = asyncio.get_running_loop()
        while True:
            async with self.cond:
                await self.cond.wait_for(lambda: self.in_flight < self.limit)
                delay = self.pause_until - loop.time()
                if delay <= 0:
                    self.in_flight += 1
                    return self
            await asyncio.sleep(delay)  # the host asked for a pause: wait outside the lock

    async def __aexit__(self, *exc):
        async with self.cond:
            self.in_flight -= 1
            self.cond.notify_all()

    def record(self, status, retry_after=None):
        if status in (429, 503):
            self.limit, self.clean = max(self.low, self.limit // 2), 0
            wait = int(retry_after) if retry_after and retry_after.isdigit() else 5 + random.random()
            now = asyncio.get_running_loop().time()
            self.pause_until = max(self.pause_until, now + wait)
        elif status < 400:
            self.clean += 1
            if self.clean >= 20 and self.limit < self.high:
                self.limit, self.clean = self.limit + 1, 0


gates = {}


def gate_for(url):
    host = urlsplit(url).hostname
    if host not in gates:
        gates[host] = AdaptiveLimit()
    return gates[host]


async def fetch(client, url, attempts=2):
    gate = gate_for(url)
    status = None
    for _ in range(attempts):
        try:
            async with gate:
                r = await client.get(url)
        except httpx.HTTPError as exc:
            return "error: %s" % type(exc).__name__
        status = r.status_code
        gate.record(status, r.headers.get("Retry-After"))
        if status not in (429, 503):
            break  # the retry, if any, waits for the host's pause in __aenter__
    return status


async def main(urls):
    timeout = httpx.Timeout(30.0, connect=10.0)
    async with httpx.AsyncClient(proxy=PROXY, timeout=timeout) as client:
        print(await asyncio.gather(*(fetch(client, u) for u in urls)))
    print({host: gate.limit for host, gate in gates.items()})


asyncio.run(main(["https://example.com/"] * 10))
```

## Hedef dışında hangi faktörler proxy ile yapılan taramayı yavaşlatır?

- **TLS el sıkışmaları.** Her istek için yeni bir bağlantı kurulması, yani her defasında yeni bir IP gerekmesi, siteyle her seferinde bir el sıkışma ekler. IP çeşitliliğinin önemli olmadığı tek bir sitedeki sayfalar için keep-alive ile kalıcı oturum kullanın.
- **Yavaş çıkışlar.** Konut proxy ve mobil 4G proxy gerçek ev ve hücresel bağlantılardır. Beklemek yerine zaman aşımı kullanın ve yeni bağlantıda yeniden deneyin.
- **Dar hedefleme.** Küçük bir şehir veya tek bir ASN, ülkeye göre daha az çıkışa sahiptir. Sadece veri değişen yerleri hedefleyin.
- **Render alma.** Başsız tarayıcı, HTTP istemcisine kıyasla sayfa başına çok daha fazla CPU, bellek ve trafik kullanır. Sadece JavaScript gerektiren sayfaları render edin.
- **DNS.** `socks5h://` veya HTTP portu ile, DNS çıkış noktasında çözülür; hedef ana bilgisayarlar için yerel bir çözücü önbelleğine gerek yoktur.

## Eşzamanlılık soruları

### CrawlRelay iş parçacığı mı yoksa bağlantı sayısını mı sınırlar?

Planlar, iş parçacığı, bağlantı veya istek başına değil, GB trafik başına ücretlendirilir ve yayımlanan planlarda iş parçacığı sınırı yoktur. Pratik sınırlar her hedefin toleransı ve kendi makinenizdir. Çok büyük bir tarama yapacaksanız, hedeflemeniz için kapsama alanını kontrol edebilmemiz adına önce support@crawlrelay.com ile yazışın.

### Tarama hızı iş parçacığı artırınca neden yavaşladı?

Genellikle hedef sizi kısıtlamaya başladığı içindir: yanıt süreleri artar, 429 veya 503 yanıtları belirir, yeniden denemeler ek yük oluşturur. Diğer yaygın neden, özellikle başsız tarayıcılar ile kendi makinenizin CPU ya da soketlerinin tükenmesidir. İş parçacığı eklemeden önce ana bilgisayar başına gecikme ve hata oranlarını ölçün.

### Her istek için bir bağlantı kurmak keep-alive’dan daha mı yavaş?

Evet, her istek için bir TCP ve TLS el sıkışması gerekir, genellikle konut proxy çıkışında birkaç yüz milisaniye sürer. Bu, her istek için yeni IP kullanmanın bedelidir. IP’nin önemi olmayan bir sitenin çok sayıda sayfası için ise keep-alive ile kalıcı oturum daha hızlıdır ve daha az trafik kullanır.

### Eşzamanlı tarayıcıda robots.txt crawl-delay nasıl dikkate alınır?

Robots.txt dosyasını her ana bilgisayar için bir kez çözümleyin, RFC 9309 önerdiği şekilde 24 saate kadar önbelleğe alın ve `Crawl-delay` değerini isteklere aralarında en az bir eşzamanlılıkla per-host minimum boşluk olarak çevirin. Python'un `urllib.robotparser` bunu `crawl_delay()` üzerinden erişilebilir hale getirir.

**GB başına fiyatlandırmaya göre ölçeklendirin** $0,50/GB, 50 GB’den 1 TB’ye, süresi dolmayan trafik. [Fiyatları gör](https://crawlrelay.com/tr/pricing/) · [Bant genişliği hesaplayıcı](https://crawlrelay.com/tr/guides/bandwidth-calculator/)

---

CrawlRelay: CrawlRelay, kazıyıcılar ve AI veri hatları için geliştirici odaklı dönen konut proxy ve 4G/5G mobil proxy hizmetidir: süresiz, kullanılan kadar ödenen trafik $0,50/GB'dan itibaren, kripto ile ödenir, kimlik yüklemesi yoktur. KYC yok — kimlik, selfie veya belge istemez. Kripto ile ödeyin.
