2009-07-10 11 views
6

Sto scrivendo del codice su un dispositivo mobile che utilizza un servizio REST per recuperare i dati da un host. I servizi REST vengono sottoposti a proxy da Apache. In modalità test mi piacerebbe essere in grado di simulare le interruzioni di rete (come se il dispositivo avesse perso la sua connessione cellulare) per testare la gestione delle applicazioni di guasti intermittenti. Devo anche convalidare il suo comportamento con connessioni di rete lente.Come rendere l'apache lento e inaffidabile?

Attualmente sto utilizzando Traffic Shaper XP per rallentare la connessione di rete, ma ora ho bisogno di qualcosa per far sì che il server Apache invii le reimpostazioni di connessione sia casualmente che su sequenze predefinite (per configurare e ripetere specifici scenari di test).

+1

Farlo eseguire script PERL tramite CGI. Questo lo rallenterà. – skaffman

+0

Non è molto utile a tutti gli skaffman. – Weegee

+0

È venerdì pomeriggio. Mi sento frivolo. – skaffman

risposta

1

Sembra che dummynet sia la cosa più vicina, ma non è ancora quieto. Per i test ripetibili sarebbe opportuno avere un certo controllo sui pacchetti scartati e sui ripristini.

jack

2

Scrivere un piccolo proxy che inoltra le connessioni TCP dall'app al server Apache e che è possibile impostare nel test per interrompere la connessione dopo il numero x di byte o millisecondi.

0

Si tratta di un ambiente Unix o Linux? nice in alto per dargli priorità più bassa quindi eseguire un elevato utilizzo della CPU come ascoltare musica, riprodurre un film, calcolare il pi, ecc. La bassa priorità per Apache dovrebbe creare problemi simili a quelli che stai cercando.

+0

È un ambiente Windows (aaack). Sto pensando che potrebbe essere necessario mettere in piedi una VM Linux per avere davvero il controllo di cui ho bisogno. Sto anche pensando che potrei aver bisogno di scrivere un modulo apache per ottenere il livello di controllo che voglio. –

+0

Potrebbe essere possibile fare la stessa cosa con Windows. Basta impostare la priorità sul minimo (se lo consente), quindi eseguire [SuperPI] (http://www.xtremesystems.com/superpi/). – Weegee

0

In una differente (o sullo stesso) computer, utilizzare lo strumento di comando ab per ottenere qualche carico sul apache. Maggiori informazioni here.

2

In Apache2 è possibile rallentare regolando le impostazioni di prefork in apache2.conf. Le impostazioni di seguito dovrebbero rendere l'apache piuttosto lento. Hanno reso la mia applicazione web locale più lunga del 700% da caricare.

<IfModule mpm_prefork_module> 
    StartServers   2 
    MinSpareServers  2 
    MaxSpareServers  2 
    MaxClients   4 
    MaxRequestsPerChild 0 
</IfModule> 
Problemi correlati