LOG8371: Modèles de
Performance Logicielle -
Exercice
Hiver 2021
©Marios Fokaefs
Problème
• On a un système pour les achats électroniques. L’utilisateur se connecte au
système, qui va valider l’identité de l’utilisateur (validateUser). Après
l’utilisateur peut parcourir le catalogue des produits (browseCatalog), ou
ajouter un produit dans le panier (addToBasket), ou commander un produit
(placeOrder). L’utilisateur peut choisir une de trois options selon cette
distribution de probabilité [0.5, 0.4, 0.1]. Un utilisateur ajoute 10 produits
dans le panier en moyenne. Si l’utilisateur choisit de commander un
produit, le système va valider l’information de la carte crédit de l’utilisateur
avec la banque et il va procéder le paiement. En fin, le système va
retourner le résultat à l’utilisateur.
• Créer un diagramme de séquence UML et une graphe d’exécution pour ce
problème.
LOG8371 2
UML
LOG8371 3
UML et graphe d’exécution
browseCatalog
validateUser
addToBasket
0.5
10
0.4
validate
CreditCard
0.1
placeOrder
sendResult
processPayment
LOG8371 4
Ressources CPU Disque Réseau
Estimation du temps Quantité
Unité de
1
KInstr.
1
I/O
1
Msgs
de réponse d’une requête service
Worker 4 Worker 1 Worker 1000 2 0
Msgs 1 Msgs 1 Msgs 10 0 1
browseCatalog
validateUser
Temps de 0.015 5 1
service
addToBasket (ms)
0.5 Worker 1
10 Msgs 2
0.4
Worker 2 Calculez le chemin court,
le chemin moyen,
validate Msgs 2
et le chemin long.
CreditCard
0.1
placeOrder
Worker 4
sendResult Worker 2
processPayment Msgs 4
Msgs 1 LOG8371 5
• validateUser = 4*1000*0.015+4*2*5+10*0.015+1=
Estimation du temps 101.15ms
• browseCatalog = 1000*0.015+2*5+10*0.015+1= 26.15ms
de réponse d’une requête • addToBasket (x10) = (1000*0.015+2*5+2*10*0.015+2)*10 =
273ms
Worker 1 • validateCreditCard = 2*1000*0.015+2*2*5+2*10*0.015+2 =
Worker 4 Msgs 1 52.3ms
• processPayment = 4*1000*0.015+4*2*5+4*10*0.015+4 =
Msgs 1
browseCatalog 104.6ms
• sentResult = 2*1000*0.015+2*2*5+10*0.0015+1 = 51.15ms
validateUser
addToBasket • Sys(court) = 101.15+26.15+51.15 = 178.45ms
0.5 Worker 1 • Sys(long) = 101.15+273+51.15 = 425.3ms
Msgs 2 • Sys(moy) =
10 101.15+26.15*0.5+273*0.4+(52.3+104.6)*0.1+51.15 =
0.4
290.265ms
Worker 2
validate
CreditCard Msgs 2
0.1
placeOrder
sendResult Worker 2 Worker 4
Msgs 1 processPayment
LOG8371 6
Msgs 4
Préparez l’estimation du temps de résidence
(réponse) Worker 1 • Quel est le taux de visite pour chaque ressource?
• CPU V
Worker 4 Msgs 1 • DisqueV
Msgs 1 • RéseauV
browseCatalog • Quel est le temps de service moyen pour chaque ressource?
• CPUS
validateUser
• DisqueS
• RéseauS
addToBasket
0.5 Worker 1
10 Msgs 2
0.4
validate Worker 2
CreditCard Msgs 2
0.1
placeOrder
sendResult Worker 2 Worker 4
processPayment
Msgs 1 LOG8371
Msgs 4
7
Préparez l’estimation du temps de résidence
(réponse) Worker 1 • Quel est le taux de visite pour chaque ressource?
• CPUV = 25
Worker 4 Msgs 1 • DisqueV = 14 Worker Msgs
Worker + Msgs
Temps service
• RéseauV = 11
Msgs 1 • Quel est le temps de service moyen pour chaque ressource?
browseCatalog
• CPUS = ((14*1000+11*10)/25)*0.015=8.46ms
validateUser • DisqueS = ((14*2)/14)*5=10ms
• RéseauS = ((11*1)/11)*1 = 1ms
addToBasket
Worker 1
0.5
Msgs 2
10
0.4
validate Worker 2
CreditCard Msgs 2
0.1
placeOrder
sendResult Worker 2
Worker 4
Msgs 1 processPayment
LOG8371 8
Msgs 4
Exemple E-shop (QN ouvert)
• λ = 3 tâches/sec Métriques CPU Disque Réseau
X
• Nombre de visites S 0.00846 0.01 0.001
• CPU : 25 U
• Disque : 14 RT
• Réseau : 11 N
• Temps de service moyen Tâches dans le système =
• CPU : 0.00846s 8.46 ms = 0.00846s Temps de réponse du système =
• Disque : 0.01s
• Réseau : 0.001s
LOG8371 9
Exemple E-shop (QN ouvert)
• λ = 3 tâches/sec Métriques CPU Disque Réseau
X = λ*V 75 42 33
• Nombre de visites S 0.00846 0.01 0.001
• CPU : 25 U = X*S 0.635 0.42 0.033
• Disque : 14 RT = S/(1-U) 0.0232 0.0172 0.001
• Réseau : 11 N = RT*X 1.738 0.7224 0.033
• Temps de service moyen Tâches dans le système = 1.738+0.7224+0.033 = 2.49
• CPU : 0.00846s Temps de réponse du système = 0.831 2.49 / 3
• Disque : 0.01s
• Réseau : 0.001s
LOG8371 10