2009-07-10 7 views
6

Piszę kod na urządzeniu mobilnym, które używa usługi REST do pobierania danych z hosta. Te usługi REST są świadczone przez Apache. W trybie testowym chciałbym móc symulować awarie sieci (tak jakby urządzenie utraciło połączenie z komórką), aby przetestować obsługę przerywanych awarii. Muszę również sprawdzić jego zachowanie przy wolnych połączeniach sieciowych.Jak uczynić Apache wolnym i zawodnym?

Obecnie używam Traffic Shaper XP, aby spowolnić połączenie sieciowe, ale teraz potrzebuję czegoś, co sprawi, że serwer Apache wyśle ​​reset połączenia zarówno losowo, jak i na predefiniowanych sekwencjach (aby skonfigurować i powtórzyć określone scenariusze testowe).

+1

Umożliwia wykonywanie skryptów PERL za pośrednictwem CGI. To spowolni to. – skaffman

+0

To nie jest zbyt pomocne dla wszystkich skaffmanów. – Weegee

+0

Jest piątek po południu. Czuję się niepoważny. – skaffman

Odpowiedz

1

Wygląda na to, że dummynet jest najbliższy, ale wciąż nie jest cicho. W przypadku powtarzalnych testów dobrze byłoby mieć kontrolę nad odrzuconymi pakietami i resetować.

jack

2

Napisz mały serwer pośredniczący, który przekazuje połączenia TCP z Twojej aplikacji do serwera apache i który możesz skonfigurować w teście, aby przerwać połączenie po x liczbie bajtów lub milisekundach.

0

Czy jest to środowisko Unix lub Linux? nice to, aby nadać mu niższy priorytet, a następnie uruchomić zadanie o dużym obciążeniu procesora, takie jak słuchanie muzyki, odtwarzanie filmu, obliczanie pi itp. Niski priorytet dla Apache powinien powodować problemy podobne do tego, czego szukasz.

+0

To środowisko Windows (aaack). Myślę, że może potrzebuję stanąć na maszynie wirtualnej Linux, aby naprawdę mieć kontrolę, jakiej potrzebuję. Myślę też, że może potrzebuję napisać moduł apache, aby uzyskać wymagany poziom kontroli. –

+0

Być może będziesz w stanie zrobić to samo z Windows. Wystarczy ustawić najniższy priorytet (jeśli pozwala), a następnie uruchomić [SuperPI] (http://www.xtremesystems.com/superpi/). – Weegee

0

na innej (lub na tym samym komputerze), użyj narzędzia poleceń ab aby uzyskać pewne obciążenie apache. Więcej informacji: here.

2

W Apache2 można zwolnić, dostosowując ustawienia preforków w pliku apache2.conf. Poniższe ustawienia powinny sprawić, że Apache będzie wolniejszy. Sprawili, że moja lokalna aplikacja internetowa ładowała się o 700% dłużej.

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