Manuel d'installation et d'utilisation de Wagonutilisable sur les machines VTHD dediees. |
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.
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.
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 B : xhost A
-sur B : xauth list (vous obtiendrez quelque chose du type
B.domaine cookie cle)
-sur A : xauth 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 wsopi98a : xauth add local.domaine cookie cle
par exemple:
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 !
Last modified: Mon Jan 22 11:38:22 MET 2001