2012-06-11 13 views
9

Abbiamo un player video Flash/HTML5 personalizzato che utilizziamo per gli utenti sul nostro sito. Attualmente sto arricchendo l'esperienza per gli utenti che hanno una larghezza di banda 'subottimale' - in pratica vorremmo che il codice client del client fosse in grado di rilevare una scarsa esperienza utente a causa dell'eccessivo buffering. Vorrei testare questo codice di gestione "scarsa larghezza di banda" nel mio ambiente di sviluppo locale.Simula scarsa larghezza di banda in un ambiente di test (Mac OS X)?

Qualcuno sa di buone tecniche per simulando "poveri della larghezza di banda" in un ambiente locale per scopi di test?

In particolare, il mio browser locale si connette a una macchina virtuale con istanze di uWSGI, nginx e python/django e vorrei poter iniettare quantità arbitrarie di ritardo nella consegna di contenuti da questi sistemi. (Sono principalmente interessato a farlo con nginx, che fa il content delivery/streaming video).

EDIT: Può essere rilevante che l'ambiente dev è Mac OS X.

+0

Possibile duplicato di: http://superuser.com/questions/173882/netem-for-mac-os-x-to-emulate-network-latency-and-dropped-packets –

risposta

16

Basta utilizzare la configurazione di nginx.

Mentre di OS X Lion Network link condizionatore funziona come previsto è ancora fastidioso da utilizzare quando sto provando a testare solo un sottoinsieme del comportamento di un'applicazione Web, ad esempio il sistema di gestione del buffering del video lento.

Come tale, ho trovato molto più conveniente per impostare rate limiting nel mio file nginx.conf, per esempio,:.

location ~ /files/(.*\.(mp4|m4v|mov))$ { 
    ... 
    limit_rate 50k; # <-- Limit download rate per connection to 50kbps 
    ... 
} 

EDIT: Vedere il nginx HttpCoreModule docs.

+0

Qualcosa che ho riscontrato e credo debba essere aggiunto qui: Se limit_rate sembra non funzionare, assicurati che "proxy_buffering on" sia impostato (l'impostazione predefinita è on) – emrahgunduz

+0

È una buona simulazione per un sito web? Un browser potrebbe aprire più di una connessione, no? – user37078

1

sto usando questo programma NetLimiter per simulare "la larghezza di banda poveri". Non è gratuito, ma ha una versione di prova che funziona bene. È solo per Windows :(

+0

vedere questo link, http://hintsforums.macworld.com/showthread.php?t = 9417 – Xosler

5

Ho appena trovato il Mac OS X Network Link Conditioner ma non sono ancora sicuro funziona su loopback, che avrebbe bisogno di per i miei scopi

EDIT:. Questo sembra funzionare su loopback, così sembra per risolvere il mio problema! Questo è probabilmente la strada da percorrere se siete su OS X 10.7

9

FreeBSD è l'antenato di Mac OS, quindi è possibile utilizzare il potente firewall integrato denominato ipfw. Può essere utilizzato in molti casi diversi, ad esempio simulare una larghezza di banda ridotta. Utilizzare il proprio indirizzo IP loopback (127.0.0.1) o un server remoto (8.8.8.8 in tal caso).

facciamo un video di interviste web-application, quindi mi piacerebbe condividere con la nostra esperienza di simulazione di cattiva connessione, vedi esempio qui sotto:

$ sudo su 

$ ipfw show 
$ ipfw pipe 1 config delay 600ms bw 256kbit/s 
$ ipfw add pipe 1 dst-ip 8.8.8.8 dst-port 80 

$ ipfw flush 

ipfw tubo permette di simulare lento e connessione instabile con l'utilizzo del ritardo , bw e anche prob per simulare le perdite di pacchetti.