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
| Ölçüm | cURL değişkeni | Ne anlatır? | Önemli olduğu iş |
|---|---|---|---|
| Bağlantı süresi | time_connect | Proxy'ye TCP bağlantısı kurma süresi | Her istekte yeni bağlantı açan betikler |
| İlk bayt süresi | time_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üre | time_total | İsteğin tamamı | Genel kullanıcı deneyimi |
| İndirme hızı | speed_download | Saniyedeki ortalama bayt | Büyük dosya, medya indirme |
Örnek oranlar
Konsept animasyonu- Bağlantı
- El sıkışma
- İlk bayt
cURL ile ölçüm
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/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.
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.binTek ö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.
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))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
Çalıştığını doğrulayın
Proxy kontrolü ile proxy'nin yanıt verdiğinden emin olun.
- 2
Doğrudan bağlantıyı ölçün
Proxy olmadan aynı komutu çalıştırıp temel değeri alın.
- 3
Birden çok örnek alın
En az on ölçüm, farklı saatlerde; medyanı ve en kötü değeri kaydedin.
- 4
Gerçek hedefle deneyin
Örnek adres yerine işinizde kullanacağınız hedefe benzer bir adresle ölçün.
- 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