Manuel d'installation et d'utilisation de Wagon

utilisable sur les machines VTHD dediees. 
INRIA-Sophia logo

Sommaire

  1. Introduction
  2. Wagon / apache : installation
  3. Wagon / Apache : utilisation

 Introduction

Wagon fonctionne selon un modele client-serveur.

C'est a dire que les clients Wagon vont emettre des requetes a un (ou plusieurs) serveur(s) Wagon qui va (vont) repondre a ces requetes.
Dans l'experimentation VTHD 1, c'est le debit de sortie du (des) serveur(s) qui nous interesse.
 

Ces requetes sont des requetes Web (http 1.x) generees de maniere 'intelligente'.

La demarche schematique est la suivante :

-> un robot Wagon parcoure le fichier log d'un vrai serveur Web afin de determiner un scenario rejouable. (cf. these de Cesar Jalpa pour des infos sur les modeles statistiques et mathematiques employes).
-> ce scenario comprend en fait une liste de chemin de pages 'visitables' selon des probabilites de routage et de popularite (pages nb de fois atteintes reellement dans le fichier log).
-> ce scenario sera donc joue par les clients, en ajustant d'autres parametre, comme la duree d'une session par client, le nombre de clics de souris par session, etc.

Nous allons nous interesser ici a la maniere d'installer Wagon, Apache et comment utiliser Wagon.


 Wagon / Apache : installation


   une armada de 60 machines dediees a Wagon est deployee sur tout VTHD. Parmi ces 60 machines, certaines sont des clientes, d'autres des serveurs, d'autres encore des 'robinets UDP', potentiellement des serveurs et/ou clients.
 

TOUT SERVEUR PEUT JOUER LE ROLE DE CLIENT.
Les deux seules differences fondamentales entre un client et un serveur sont (hormis la RAM):

1) le serveur possede deux interfaces reseaux (une carte 10/100 et une carte Gigabit)
2) le serveur possede Apache et donc un serveur Web.
 

L'installation est tres simple, pour peu qu'on ait acces a la machine distante depuis une machine Wagon sophipolitaine.
 

WAGON

    depuis wsopi01a (accessible depuis le reseau de production), faire un rcp des classes et des sources (si besoin est de les modifier dans le futur) de Wagon.
Y ajouter egalement le jdk1.2 et les scripts se trouvant dans le repertoire wagon. (/0/vthd/wagon/)

Note : Wagon peut tourner sur n'importe quelle plate-forme du moment que le jdk soit present.

Emplacement : sur wsopi01a, faire :          cd  /0/vthd
sous ce repertoire se trouve tout le necessaire (jdk, wagon sources, wagon classes)
 

APACHE

    depuis wsopi98a (accessible depuis wsopi01a), faire un rcp du repertoire  /0/vthd/apache/  (rcp -r). Ou bien (plus propre) recuperer le package dans /0/vthd/  (apache_1.3.14.tar.Z)

Attention, dans ce cas des precautions doivent etre prises.

    1)La limite du nombre de serveurs par defaut est de 256. Cette limite peut s'averer trop basse pour certains tests de charge. A la compilation, cette limite peut etre changee dans le fichier httpd.h Mette la variable HARD_SERVER_LIMIT a 512, voire 1024.
    2) le fichier httpd.conf (qui se trouve dans /apache/conf/) est le fichier generique de configuration du serveur. Il donne ainsi par exemple des limites de clients, ou bien l'emplacement des pages Web, etc. Pour ne pas avoir de surprises, utiliser le meme fichier httpd.conf que celui existant sur wsopi98s:/0/vthd/apache/conf/httpd.conf.

Remarques :  il est bon avant d'installer Apache de copier le contenu du serveur Web proprement dit. Pour cela faire une fois encore un rcp -r de /0/vthd/www/htdocs/inria a partir de wsopi01a
le fichier httpd.conf fait appel a des modules tres utiles, comme par exemple le server-status qui permet d'indiquer l'etat du serveur (debit, nbre de requetes, etc.). La aussi, regarder le fichier httpd.conf de wsopi98a ainsi que les modules auxquels il fait appel. Penser a les inclure a la compil d'Apache.
 


 Wagon / Apache : utilisation


L'utilisation de Wagon n'est pas aise au premier abord, c'est pour cela que certains scripts ont vu le jour, et si jamais quelqu'un souhaitait a ses heures perdues les ameliorer, nous serions preneur...:-)
 

    Comme rien ne vaut un exemple reel, voici une description detaillee pas a pas du lancement d'un test de 6 machines clientes a Sophia vers un serveur a Rocquencourt.
 

    1 ) Description du test :

    6 machines clientes a Sophia :

                -> wsopi01a (note : c'est a partir de lui egalement que nous allons lancer Wagon a proprement parler, mais nous pourrions tres bien le lancer d'une xieme machine. Seule contrainte : la machine qui lance l'interface wagon doit voir toutes les autres machines mises en oeuvre dans le test)
                -> wsopi02a
                -> wsopi03a
                -> wsopi04a
                -> wsopi05a
                -> wsopi06a (note : rien n'empecherait un serveur, comme wsopi98a par exemple, d'etre un client)

    1 machine serveur a Rocquencourt :

                -> wstli92b

    2) "pre-test"

        avant de commencer, penser a instancier le display comme il se doit. Il y aura deux interfaces graphiques, l'une etant Wagon, l'autre etant Netscape pour voir l'evolution du serveur. Pour plus de facilites, nous lancerons les deux a partir de wsopi01a.  Donc sur la machine de depart faire xhost wsopi01a, et sur wsopi01a selon le shell quelque chose du style setenv DISPLAY machine:0
        Si les interfaces graphiques sont lancees d'une machine A pour etre affichee sur une machine B, adopter la demarche suivante :

-sur A : setenv DISPLAY B:0  (ou export, cela depend du shell)
-sur Bxhost A
-sur Bxauth list (vous obtiendrez quelque chose du type B.domaine   cookie   cle)
-sur Axauth add B.domaine cookie cle
 
        Dans ce cas nous avons donc :

Si A est une machine cliente:
-sur wsopi01a : setenv DISPLAY local:0  (ou export, cela depend du shell)
-sur local xhost wsopi01a

Si A est une machine serveur:
-sur local xauth list (vous obtiendrez quelque chose du type B.domaine   cookie   cle)
-sur wsopi98axauth add local.domaine cookie cle
   par exemple:

  wsopi98a$ xauth add fripotin.inria.fr:0 MIT-MAGIC-COOKIE-1 6517150f3d49127c58251f6522427011

 

    3) lancement des clients

    Avant de lancer l'interface Wagon, les clients doivent etre prets a recevoir le scenario qu'ils devront jouer. Pour cela, plusieurs choses doivent etre faites, comme instancier le classpath, lancer le RMI (Remote Method Invocation) ou bien encore le JavaPolicy. Tout ceci est contenu dans un script (managerServer.sh)

    Sur chaque client :
                                              cd /0/vthd/wagon
                                               ./managerServer.sh 1100 & (script lance en bg pour pouvoir apres par ex. lancer un top)

1100 est le numero de port qui sera utilise, mais rien n'empeche d'en utiliser un autre. (attention tout de meme aux ports reserves, toujours utiliser un port > 1024)
 

    4) lancement du serveur

    Apache est tres simple d'utilisation.
    Aller sur wstli92b.

    Faire:

                cd /0/vthd/apache/bin
     ./apachectl start

Cela lance le serveur. pour l'arreter, utiliser ./apachectl stop, pour le relancer sans faire stop, faire ./apachectl restart (utile pour reinitialiser tous les compteurs juste avant les tests)
    Consulter le: ./apachectl ?   pour plus de details.
Sinon consulter la doc en ligne: apachectl

Sur wsopi01a, si le display est correctement positionne, lancer un netscape en background:   netscape &.
dans la barre de navigation, taper le nom du serveur, par exemple: wstli92b ou bien son adresse IP, ici (192.5.59.187)
Vous devriez voir apparaitre la page principale de l'INRIA.

Si maintenant vous taper wstli92b/server-status dans la barre de navigation, vous devriez avoir acces aux compteurs. A chaque fois que vous cliquerez sur reload, les compteurs seront réaffichés à jour (attention : les valeurs sont données en octets et non en bits).
en cas de problemes durant le test, pour connaitre le processus maitre, consulter /0/vthd/apache/logs/httpd.pid pour envoyer les signaux necessaires.

Note : le contenu du serveur de l'Inria installe fait approximativement 370MB.
 

    5) lancement de l'interface Wagon.
 

    Et voila le moment tant attendu...:-)

Sur wsopi01a, si le display est correctement positionne, aller dans /0/vthd/wagon pour lancer le script

                          ./wagon.sh 1100 &

Evidemment, le numero de port doit etre le meme....
L'interface de Wagon apparait, avec plusieurs onglets :

-client features
-experiment configuration
-logs
-report
-server/WebRobot features
-statistical analysis

Une fois tout réglé,  aller dans le menu: Run -> Clients Generator, pour créer le scénario a jouer.
Selon la durée du test ou la charge, cela peut prendre plusieurs minutes.

Enfin aller dans le menu:Run -> Request Generator pour lancer le scénario à tous les clients.
Dans le xterm de wsopi01a vous devriez voir apparaitre les messages "transferring sessions....done"

Il est interessant de restarter le serveur juste avant le debut du test afin de réinitialiser les compteurs.
Il est egalement utile de lancer des top, sur chacune des machines , pour voir l'évolution de la CPU sur les différentes machines.

Enfin les resultats...

Bons tests !


Maria.Ladoue@sophia.inria.fr

 

 

Last modified: Mon Jan 22 11:38:22 MET 2001