Académique Documents
Professionnel Documents
Culture Documents
4.2.2. Étant donné que le boucle est censé effectuer 20 itérations par seconde, et sur chaque
itération il y a une instruction client.send(), le client est censé envoyer 20 requêtes par
seconde.
4.2.3. L’hypothèse que doit être fait sur le temps de réponse du serveur est qu’il est
strictement inférieur à 50 ms. Dans le cas où cette hypothèse ne soit pas respectée, le
client reste attendant la réponse jusqu’à la recevoir ou arriver à un timeout.
4.2.4. En considérant que les deux instructions sont vues comme des actions, et le client
est censé faire 20 itérations par seconde, donc 20 client.send() et 20 client.receive()
qui donnent un total de 40 actions par seconde.
4.2.5.
— Le paquet envoyé par le client est perdu avant d’arriver au serveur.
— La réponse envoyée par le serveur est perdue avant d’arriver au client.
— Le temps de calcul écoulé dans le serveur est plus grand que le timeout de 5
secondes.
4.2.6. Le profil de charges a une durée de 1 minute, c’est-à-dire que les utilisateurs peuvent
envoyer des instructions dans l’intervalle entre 0 et 1 minute. Supposons qu’un utilisateur
envoie une requête send juste avant la fin du profil, dans t = 1 minute. Alors, cette
requête peut durer jusqu’à 5 secondes, donc nous pouvons donner une borne supérieure
de 1 minute et 5 secondes à la durée d’éxecution.
1
Premier test (1 utilisateur virtuel local)
action type calls min max mean median std dev throughput errors
LOG 0 NaN NaN NaN NaN NaN NaN 116
UDP CONNECT 1 200 200 200 200 NaN NaN 0
UDP RECEIVE 1164 16 50334 588.375 39 1804.829 19.458 0
UDP SEND 1164 40 10273 734.783 699 897.248 19.456 0
GLOBAL LOAD 2329 16 50334 661.381 425 1426.512 38.925 116
Figure 1 – Synthèse statistique obtenue pour le test avec un utilisateur virtuel local
4.3.1. Dans ce cas où il n’y a ni latence réseau, ni contention ni délais de file d’attente,
nous pouvons imaginer que le temps de traitement moyen d’une requête receive résulte
du temps d’exécution de la commande send.receive() ajouté au temps de calcul du
serveur.
4.3.2. Si les requête ont un temps de traitement minimum de 16 µs, obtenu à partir du
test local (figure 1, champs min pour le UDP Receive), nous pouvons en déduire que le
serveur a un débit moyen théorique de 1/(16 × 10−6 ) = 62500 requetes/s
4.3.3. Étant donnée que un utilisateur virtuel peut envoyer en moyenne 19.458 requetes/s,
le serveur pourrait admettre au maximum n = b62500/19.458c = 3212 utilisateurs.
4.3.4. Étant donnée que chaque requête du type UDP Receive prend en moyenne 588.375 µs
pour être traitée, et que il y a eu 1164 appels à cette action, le serveur a été utilisée pour
1164∗588.375 µs = 0.685s. Dans une fenêtre de 1 s, cela correspond à un taux d’utilisation
de 68, 5%
4.3.5. Cette simulation a eu 116 erreurs de 1164 requêtes reçues, ce qui fait un taux
d’erreur de 9, 965%.
action type calls min max mean median std dev throughput errors
LOG 0 NaN NaN NaN NaN NaN NaN 112
UDP CONNECT 1 115 115 115 115 NaN NaN 0
UDP RECEIVE 1127 14 429515 7147.919 5081 15999.494 18.831 0
UDP SEND 1127 67 1716 151.226 127 92.921 18.831 0
GLOBAL LOAD 2255 14 429515 3648.005 1223 11837.509 37.676 112
Figure 2 – Synthèse statistique obtenue pour le test avec un utilisateur virtuel distant
2
Troisième test (20 utilisateurs virtuels distants)
action type calls min max mean median std dev throughput errors
LOG 0 NaN NaN NaN NaN NaN NaN 1042
UDP CONNECT 20 32 277 71.05 57 53.986 10.776 0
UDP RECEIVE 10420 792 410212 8977.004 6776 12134.979 168.559 144
UDP SEND 10564 8 4529 122.084 98 113.056 170.889 0
GLOBAL LOAD 21004 8 410212 4514.926 472 9625.976 339.755 1186
Figure 3 – Synthèse statistique obtenue pour le test avec 20 utilisateurs virtuels distants
4.5.1. Le temps de réponse moyen pour 20 utilisateurs continue à être UDP RECEIVE,
qui est de 8977.004 µs
4.5.2. Avec la supposition que le temps de latence est fixe, nous pouvons utiliser celui que
nous avons calculé précédemment, qui est de 6559.544 µs. De cette façon, le temps de
traitement du serveur pour 20 utilisateurs est de treceive total − latence = 8977.004 µs −
6559.544 µs = 2417.46 µs. Par rapport a celui avec un seul utilisateurs, l’ajout de 19
utilisateurs résulte en une augmentation de environ 4 fois (a = 2417.46/588.375 = 4.109).
4.5.3. Pendant cette simulation 1042 erreurs de calculs ont été faites de 10420 requêtes
reçues, ce qui représente un taux d’erreur de 10%.
4.5.4. En plus des erreurs de calculs, pendant la simulation 144 erreurs de transmission
sont arrivées. Ces erreurs peuvent être résultat de : soit la perte du paquet lors de l’envoi
ou la réception, soit par timeout de calcul, soit par overflow du buffer du serveur.
Note
Suite à une confusion lors de la création des équipes en Teide, nous nous sommes inscrits
de manière séparée sur le deux TP qu’on voulait faire : celui-ci comme principal et celui
d’IHM comme supplémentaire. Nous allons rendre ce rapport avec l’équipe de Teide qui
est composé seulement par Carlos Benavides, mais nous voulons que la note soit tenue
en compte pour les deux. Nous sommes désolés en avance pour les inconvénients que cela
peut causer.