Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Les Lois Universelles de la Performance - Devox...

rluta
April 22, 2022

Les Lois Universelles de la Performance - Devoxx France 2022

rluta

April 22, 2022
Tweet

More Decks by rluta

Other Decks in Programming

Transcript

  1. #DevoxxFR Paralléliser pour aller plus vite Tn = T1 σ

    + T1 (1 − σ) n sérialisée σ parallélisable 1 − σ T1 T2 T4 4
  2. #DevoxxFR Limites de l'accélération parallèle A(n) = T1 Tn Accélération

    1 2 3 4 5 6 7 8 9 10 Parallélisme 1 2 3 4 5 6 7 8 9 10 0 0.01 0.05 0.1 0.5 σ A(n) = n 1 + σ(n − 1) Loi d'Amdahl 48-6 Accélération:
  3. #DevoxxFR Exemple: Collections Parallèles val data=(1 to 1000*1000).toParArray val poolSize

    = 4 val pool = new ForkJoinPool(poolSize) data.tasksupport = new ForkJoinTaskSupport(pool) data.sum Nombre Threads Durée (ms) Accélération 1 2.802 1.00 2 1.775 1.58 3 1.551 1.81 4 1.474 1.90 yqypsu1osl 7*3*2
  4. #DevoxxFR Anatomie d'une fi le d'attente λ Débit d'arrivée moyen

    μ Débit de service moyen Taille maximale
 fi le d'attente Nombre de serveurs Discipline G / G / 1 / ∞ / FCFS ? ? ? M D G Memoryless Deterministic Generalized Loi d'arrivée ? ? ? M D G Memoryless Deterministic Generalized Loi de service 3*2*7
  5. #DevoxxFR Mensurations d'une fi le d'attente λ μ L Nombre

    d'éléments dans le système Temps d'attente dans la fi le W R Temps de résidence S Temps de service Taux d'utilisation ρ ρ = λ μ S = 1 μ R = W + S L = λR Loi de Little Relations entre les mesures 6*7
  6. #DevoxxFR Lequel de ces 2 systèmes possède les meilleurs performances

    ? Files d'attente parallèles File d'attente mutualisée Débit d'arrivée: 1000 personnes/heure Temps de service: 10 sec Temps d'attente: 3.5s Personnes en attente: 1 Temps d'attente: 22s Personnes en attente: 6.4 14*3
  7. #DevoxxFR Comportement théorique d'une G/G/1 λ ρ 1 μ 0

    utilisation débit ρ W 1 utilisation temps d'attente W ≈ ( ρ 1 − ρ )S( c2 λ + c2 μ 2 ) Approximation de Kingman zi75prbwll 44-2
  8. #DevoxxFR Mesures de latence d'une API tvziz8ng6s wrk2 -t1 -d120

    -c10 -R $R --latency $URL; 30 ≤ R ≤ 300 21*2
  9. #DevoxxFR Modélisation de système Web Server DB Requests Système ouvert

    Requests Responses Système fermé Request Response Users Responses 21+21
  10. #DevoxxFR Mesures en système fermé Temps de réponse moyen 0

    10 20 30 40 50 60 70 80 Nombre de connexions 1 3 5 7 9 11 13 15 17 19 Requêtes / sec 0 50 100 150 200 250 300 Nombre de connexions 1 3 5 7 9 11 13 15 17 19 xboiqssf9q wrk2 -t1 -d120 -c $c --latency $URL; 1 ≤ c ≤ 20 42/1
  11. #DevoxxFR Comportement d'un système fermé Réponse N utilisateurs envoient des

    requêtes toutes les Z secondes Traitement prends S secondes X(N) X(N) = N 1 − σ(N − 1) σ = S S + Z avec 40+2 Débit de requête
  12. #DevoxxFR La loi d'extensibilité universelle USL(n) = cn 1 +

    σ(n − 1) + κn(n − 1) Pénalité de contention Pénalité de cohérence 0 ≤ σ ≤ 1 0 ≤ κ ≤ 1 c ≥ 1 Taux de concurrence izpkxtggul 42
  13. #DevoxxFR Exemples d'application • API • Job Spark • Node.js

    @ Paypal • Zookeeper https://www.desmos.com/calculator/ljl4f7tkty https://www.desmos.com/calculator/azpji2vamz https://www.desmos.com/calculator/ckyauwf2mv https://www.desmos.com/calculator/d0qctxdjwd 6*6+6 https://www.desmos.com/calculator/4ol6hieyca
  14. #DevoxxFR La modélisation des systèmes • Permet de compléter les

    approches de mesures empiriques pour: • Quali fi er le bon fonctionnement • Anticiper des comportements anormaux • Plani fi er des évolutions 9*5-3
  15. #DevoxxFR Pour anticiper les modes de panne λ R débit

    temps de résidence N R utilisateurs temps de résidence S S μ 36+6
  16. #DevoxxFR Pour aller plus loin... • Guerilla Capacity Planning de

    Neil Gunther • The Essential Guide to Queueing Theory de Baron Schwartz / Vivid Cortex • Practical Scalability Analysis with U.S.L. de Baron Schwartz / Vivid Cortex • usl4j and you by Coda Hale • Queues Calculators: 
 https://www.supositorio.com/rcalc/rcalclite.htm 7*5+7