2009-07-10 5 views
6

J'écris du code sur un périphérique mobile qui utilise un service REST pour récupérer des données d'un hôte. Les services REST sont fournis par Apache. En mode test, je souhaiterais pouvoir simuler des pannes réseau (comme si l'appareil avait perdu sa connexion cellulaire) pour tester la gestion des défaillances intermittentes. J'ai également besoin de valider son comportement avec des connexions réseau lentes. J'utilise actuellement Traffic Shaper XP pour ralentir la connexion réseau, mais maintenant j'ai besoin de quelque chose pour que le serveur Apache envoie des réinitialisations de connexion à la fois au hasard et sur des séquences prédéfinies (pour configurer et répéter des scénarios de test spécifiques).Comment rendre apache lent et peu fiable?

+1

Cela va ralentir. – skaffman

+0

Ce n'est pas vraiment utile chez tous les skaffman. – Weegee

+0

Nous sommes vendredi après-midi. Je me sens frivole. – skaffman

Répondre

1

On dirait que dummynet est la chose la plus proche, mais toujours pas calme là-bas. Pour les tests répétables, il serait bon d'avoir un certain contrôle sur les paquets perdus et les réinitialisations.

jack

2

Écrivez un petit proxy qui transmet les connexions TCP de votre application au serveur apache et que vous pouvez configurer dans votre test pour couper la connexion après x nombre d'octets ou millisecondes.

0

Est-ce un environnement Unix ou Linux? nice pour lui donner une priorité inférieure, puis exécuter une tâche d'utilisation du processeur élevée comme écouter de la musique, lire un film, calculer pi, etc. La faible priorité pour Apache devrait créer des problèmes similaires à ce que vous recherchez.

+0

C'est un environnement Windows (aaack). Je pense que j'ai besoin de standup une machine virtuelle Linux pour avoir vraiment le contrôle dont j'ai besoin. Je pense aussi que je devrais écrire un module apache pour obtenir le niveau de contrôle que je veux. –

+0

Vous pourriez être en mesure de faire la même chose avec Windows. Définissez simplement la priorité au plus bas (si cela vous permet), puis exécutez [SuperPI] (http://www.xtremesystems.com/superpi/). – Weegee

0

Sur un autre (ou le même) ordinateur utiliser l'outil de ligne de commande ab pour obtenir une charge sur le apache. Plus d'informations .

2

Dans Apache2, vous pouvez ralentir en ajustant les paramètres prefork dans apache2.conf. Les paramètres ci-dessous devraient rendre apache plutôt lent. Ils ont rendu mon application Web locale 700% plus longue à charger. Faites-lui exécuter des scripts PERL via CGI

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