Diverse versioni di iperf per le windows danno risultati completamente diversi

Misurare l'output TCP da un client Windows al server Solaris:
WXP SP3 con iperf 1.7.0 -> restituisce una media di circa 90Mbit
Lo stesso client, lo stesso server ma iperf 2.0.5 per windows -> restituisce una media di 8.5 Mbit

Differenze simili sono state osservate in collegamento ad altri server (W2008, W2003)

  • Impostazioni ottimali delle performance per il protocollo Spanning Tree (802.1d) per l'ambiente LAN (gioco)
  • Traccia il traffico tra 2 tabs di networking
  • Confronto tra Firewall, Intrusion Preventson, Detection e tecnologie antivirus nell'architettura della networking organizzativa
  • Alla ricerca di un programma di analisi in networking in tempo reale open source
  • width di banda vs throughput in networking cablata / wireless
  • Eseguire due sottoreti sulla stessa LAN fisica
  • È difficile giungere ad alcune conclusioni quando diverse versioni dello stesso strumento forniscono risultati molto diversi.

    Esempio di seguito:

    C: \ temp> iperf -v (da iperf.fr)
    iperf versione 2.0.5 (08 lug 2010) pthreads

    C: \ temp> iperf -c solaris10
    Cliente che collega a solaris10, port TCP 5001
    Dimensione della window di TCP: 64,0 KByte (predefinito)

    [3] port locale 10.172.181.159 2124 connessa con port 10.172.180.209 5001
    [ID] Intervallo di width di banda di trasferimento
    [3] 0,0-10,2 sec 10,6 MBytes 8,74 Mbit / sec

    Abysmal perfomance, ma ora provo dallo stesso host (Windows XP SP3 32bit e 100Mbit) allo stesso server (Solaris 10 / sparc 64bit e 1Gbit in esecuzione iperf 2.0.5 con window predefinita di 48k) con il vecchio iperf

    C: \ temp> 1iperf -v
    iperf versione 1.7.0 (13 marzo 2003) thread di win32

    C: \ temp> 1iperf.exe -c solaris10 -w64k
    Cliente che collega a solaris10, port TCP 5001
    Dimensione della window di TCP: 64.0 KByte

    [1208] port locale 10.172.181.159 2128 collegata con port 10.172.180.209 5001
    [ID] Intervallo di width di banda di trasferimento
    [1208] 0,0-10,0 sec 112 MBytes 94,0 Mbit / sec

    Quindi un iperf con una window 64k dice 8.75Mbit e il vecchio iperf con la stessa dimensione della window dice 94.0Mbit. Questi risultati sono costanti attraverso prove ripetute.

    Dal mio test di lancio iperf (vecchio) con dimensione window "x" e iperf (nuovo) con dimensione window "x" invece di produrre i risultati stessi o molto vicini producono risultati totalmente diversi. L'unica differenza che vedo è il vecchio compilato come thread di win32 vs pthreads, ma il parallelismo (-P 10) sembra funzionare in entrambi.

    Chiunque ha un indizio o può raccomandare uno strumento che dà risultati che posso fidarti ??

    EDIT: Guardando le tracce da (vecchio) iperf imposta la flag di scala window TCP a 3 nel pacchetto SYN, quando eseguo il (nuovo) iperf che è impostato su 0 nel pacchetto iniziale. Una rapida analisi della dimensione della window attraverso lo scambio mostra il (vecchio) iperf che va avanti e indietro ma soprattutto a 32k mentre il (nuovo) iperf mantiene per la maggior parte 64k. Forse aiuterà qualcuno a colbind i punti.

  • Ampiezza di banda con tc qdiscs
  • Perché l'UDP multicast può essere più lento di unicast UDP?
  • performance iperf max udp multicast che picchiano a 10Mbit / s?
  • Iperf 2.x pre-compilato binario per win32?
  • Aumentare il numero di connessioni TCP in output
  • ESXi 5.5, velocità di networking lento quando si scrive agli ospiti
  • 3 Solutions collect form web for “Diverse versioni di iperf per le windows danno risultati completamente diversi”

    La versione successiva di iperf che hai è utilizzando una libreria di threading diversa (thread win32 vs pthread). Quella sola potrebbe spiegare la differenza di performance.

    Ci potrebbe essere un'altra differenza di codice tra 1.x e 2.x di iperf. Potrebbe essere semplice come le opzioni predefinite modificate da 1.x a 2.x (come TCP_WINDOW_SIZE, …).

    Assicurarsi che entrambi utilizzano TCP (o udp), ad esempio eseguendo nuovamente l'esecuzione con l'opzione -udp.

    Potresti provare gli archivi della mailing list degli utenti iperf, o anche postare la tua domanda.

    Questo non si qualifica come una risposta corretta, ma hai provato a garantire che la versione iperf sull'estremità di Solaris corrisponda a quella in esecuzione su Windows. Non sono riuscito a riprodurlo usando iperf 2.0.4 su linux e 2.0.5 sulle windows. Quindi sto sospettando che il comportmento che stai vedendo ha a che fare con la versione utilizzata nella casella Solaris che non sta giocando bene con la versione più recente per Windows.

    Non credo che l'ultima affermazione della risposta di @ Fahad sia corretta! I client iPerf di Solaris e Linux stanno spingendo la width di banda corretta per l'analizzatore di protocollo. Windows iPerf 2.x non deriva il valore corretto, ma iPerf 1.07 è; quindi, wherevo accontentarsi dell'utilizzo della versione 1.x per get risultati accurati.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.