Performans

Proxy hız testi nasıl yapılır? Gecikme ve indirme ölçümü

Proxy hızı tek bir sayı değildir: bağlantı süresi, ilk bayt süresi ve indirme hızı ayrı ölçülür. Bu rehber üçünü cURL ve Python ile ölçmeyi ve sonucu doğru yorumlamayı anlatır.

Kategori
Performans
Okuma süresi
8 dk okuma
Yayın:

Proxy hız testi yaparken "hızlı mı?" sorusu aslında üç ayrı soruya bölünür: proxy'ye ne kadar çabuk bağlanılıyor, ilk yanıt ne kadar çabuk geliyor ve veri hangi hızla akıyor? Web kazıma gibi çok sayıda küçük istek gönderen işler için ilk iki değer belirleyicidir; büyük dosya indiren işler için üçüncüsü. Tek bir "Mbps" sayısı bu üç farklı davranışı gizler.

Üç farklı süre, üç farklı anlam

cURL değişkenleri ve neyi ölçtükleri (proxy kullanılırken)
ÖlçümcURL değişkeniNe anlatır?Önemli olduğu iş
Bağlantı süresitime_connectProxy'ye TCP bağlantısı kurma süresiHer istekte yeni bağlantı açan betikler
İlk bayt süresitime_starttransferİsteğin gönderilmesinden yanıtın ilk baytının gelmesine kadarÇok sayıda küçük istek, API çağrıları
Toplam süretime_totalİsteğin tamamıGenel kullanıcı deneyimi
İndirme hızıspeed_downloadSaniyedeki ortalama baytBüyük dosya, medya indirme

Örnek oranlar

Konsept animasyonu
Gecikme bileşenleriKonsept animasyonu: istemciden proxy’ye ve hedefe giden paketler; süre çubuğu bağlantı, el sıkışma ve ilk bayt için örnek oranları gösterir. Ölçüm içermez.
  • Bağlantı
  • El sıkışma
  • İlk bayt
Bir proxy isteğinin süre dilimleri: proxy'ye bağlantı, el sıkışma, ilk bayt ve aktarım. Her dilim ayrı yorumlanır.Konsept animasyonu

cURL ile ölçüm

Bash
curl -sS -o /dev/null -m 30 -x http://proxy.example.com:8080 --proxy-user KULLANICI:PAROLA -w 'baglanti=%{time_connect} tls=%{time_appconnect} ilk_bayt=%{time_starttransfer} toplam=%{time_total}\n' https://example.com/
Süre dilimlerini tek satırda yazdırın

Not: time_appconnect değeri, HTTPS isteğinde hedefle TLS el sıkışmasının tamamlandığı anı verir (proxy ile CONNECT tüneli kurulduktan sonra). Düz HTTP isteğinde sıfır görünür. Değerler kümülatiftir: her biri isteğin başından itibaren geçen süreyi gösterir, dilim süresini bulmak için bir öncekini çıkarın.

İndirme hızı için büyük bir dosya kullanın

Hız ölçümü için en az birkaç yüz kilobaytlık bir yanıt gerekir; küçük sayfalarda TCP'nin hız kazanma aşaması ölçümün tamamını kaplar. Mümkünse kendi kontrol ettiğiniz bir sunucudaki bir dosyayı kullanın ve başkasının sitesini tekrar tekrar indirmekten kaçının.

Bash
curl -sS -o /dev/null -m 60 -x http://proxy.example.com:8080 --proxy-user KULLANICI:PAROLA -w 'boyut=%{size_download} bayt  hiz=%{speed_download} bayt/sn  toplam=%{time_total}\n' https://example.com/OLCUM-DOSYASI.bin
`speed_download` bayt/sn cinsindendir; Mbps için 8 ile çarpıp 1.000.000'a bölün

Tek ölçüm neden yanıltır?

Proxy ağ yolundaki anlık yoğunluğa, aynı anda sizin gibi kullanan diğer müşterilere ve hedef sunucunun anlık durumuna göre değişir. Bu yüzden tek bir ölçüm yerine birkaç ölçümün ortancasına (medyan) bakın; ortalama, tek bir uç değerden fazla etkilenir. İlk istek genelde daha yavaştır, çünkü bağlantı ve TLS kurulumu ilk seferde yapılır; bu yüzden ilk sonucu ayrı değerlendirin.

Python
import statistics
import time
import requests

PROXY = "http://KULLANICI:[email protected]:8080"
proxies = {"http": PROXY, "https": PROXY}
URL = "https://example.com/"
ORNEK = 10

sureler = []
hatalar = 0

for _ in range(ORNEK):
    t0 = time.perf_counter()
    try:
        requests.get(URL, proxies=proxies, timeout=(5, 20))
        sureler.append(time.perf_counter() - t0)
    except requests.exceptions.RequestException:
        hatalar += 1
    time.sleep(1)  # hedefi ve proxy'yi yormamak icin

if sureler:
    print("basarili:", len(sureler), "hata:", hatalar)
    print("medyan: %.2f sn" % statistics.median(sureler))
    print("en yavas: %.2f sn" % max(sureler))
Birden çok örnek alıp medyan ve en kötü değeri raporlama

Sonucu yorumlama

  • Bağlantı yavaş, ilk bayt normal: ağ yolunuz proxy'ye uzak olabilir. Daha yakın konumdaki bir proxy daha uygun olabilir.
  • Bağlantı hızlı, ilk bayt yavaş: gecikme proxy'nin ötesindedir: proxy'nin yolu, hedef sunucu ya da kuyruk. Hedefi değiştirip deneyin.
  • İlk bayt hızlı, indirme yavaş: bant genişliği darboğazı. Bu, hat ya da paket hızıyla ilgilidir.
  • Sonuçlar çok oynuyor: paylaşılan bir kaynak, oran sınırı ya da kararsız bir hat olabilir; ölçüm sayısını ve zamanları artırın.

Denetleyici bir hız testi midir?

Hayır. proxysorgula.tr denetleyicisi proxy'ye bağlantı süresini, el sıkışma süresini ve önceden belirlenmiş bir sınama adresinden ilk baytın geliş süresini ölçer. Bu değerler proxy'nin yanıt verebildiğini ve tepki süresini gösterir; bant genişliğini göstermez. Bir indirme hızı rakamı vermez, çünkü kısa bir sınama yanıtı bunu doğru ölçmeye yetmez.

Bunu şöyle kullanın: denetleyiciyle proxy'nin çalıştığını ve tepki süresinin makul olduğunu doğrulayın, ardından gerçek iş yükünüze benzer bir ölçümü yukarıdaki komutlarla kendi makinenizden yapın. Her ikisi birlikte, tek bir sayıdan çok daha güvenilir bir resim verir.

  1. 1

    Çalıştığını doğrulayın

    Proxy kontrolü ile proxy'nin yanıt verdiğinden emin olun.

  2. 2

    Doğrudan bağlantıyı ölçün

    Proxy olmadan aynı komutu çalıştırıp temel değeri alın.

  3. 3

    Birden çok örnek alın

    En az on ölçüm, farklı saatlerde; medyanı ve en kötü değeri kaydedin.

  4. 4

    Gerçek hedefle deneyin

    Örnek adres yerine işinizde kullanacağınız hedefe benzer bir adresle ölçün.

  5. 5

    Zaman aşımlarını ayarlayın

    Ölçüm sonuçlarına göre zaman aşımı değerlerinizi belirleyin.

Proxy'nizin bağlantı ve ilk bayt süresini şimdi ölçün.

Proxy Kontrol Et

Bu yazıda kullanılan araçlar

Sık sorulan sorular

İlgili rehberler