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

Les lois universelles de la performance

Fd4bf5fc86743ad04609e94ac4e11d00?s=47 rluta
February 19, 2020

Les lois universelles de la performance

Support de la présentation "Les lois universelles de la performance" pour le PerfUG Paris de Février 2020

Fd4bf5fc86743ad04609e94ac4e11d00?s=128

rluta

February 19, 2020
Tweet

More Decks by rluta

Other Decks in Programming

Transcript

  1. @raphaelluta Les lois universelles de la performance Perfug - Raphaël

    Luta - 19/2/2020
  2. @raphaelluta

  3. @raphaelluta Les joies du parallélisme

  4. @raphaelluta C'est trop lent ! Temps total de référence T1

  5. @raphaelluta Paralléliser pour aller plus vite

  6. @raphaelluta Paralléliser pour aller plus vite

  7. @raphaelluta Paralléliser pour aller plus vite sérialisée σ parallélisable 1

    − σ T1
  8. @raphaelluta Paralléliser pour aller plus vite sérialisée σ parallélisable 1

    − σ T1 T2
  9. @raphaelluta Paralléliser pour aller plus vite sérialisée σ parallélisable 1

    − σ T1 T2 T4
  10. @raphaelluta Paralléliser pour aller plus vite Tn = T1 σ

    + T1 (1 − σ) n sérialisée σ parallélisable 1 − σ T1 T2 T4
  11. @raphaelluta Limites de l'accélération parallèle A(n) = T1 Tn Coefficient

    d'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 σ(n − 1) + 1 Loi d'Amdahl
  12. @raphaelluta Exemple: Collections Parallèles http://localhost:8080/#/notebook/2F2YTR82K

  13. @raphaelluta QUEUES QUEUES EVERYWHERE

  14. @raphaelluta Anatomie d'une file d'attente λ Débit d'arrivée moyen μ

    Débit de service moyen Taille maximale Nombre de serveurs Stratégie d'accès FCFS, LCFS, PS, ... G / G / 1 / ∞ / FCFS ? ? ? M D G Memoryless Deterministic Generalized Loi d'arrivée ? ? ? M D G Memoryless Deterministic Generalized Loi de service
  15. @raphaelluta Quelques files d'attente M/G/1 M/M/3 M/D/1/6/PS

  16. @raphaelluta Propriétés fondamentales 1 seul état "stable": vide Améliore Disponibilité

    Débit Détériore Latence Consommation ressources
  17. @raphaelluta Mensurations d'une file d'attente λ μ L Nombre d'éléments

    dans le système Temps d'attente dans la file W R Temps de résidence S Temps de service Taux d'utilisation ρ ρ = λS S = 1 μ R = W + S L = λR Loi de Little Loi d'utilisation Relations entre les mesures
  18. @raphaelluta Comportement d'une file G/G/1 λ ρ 1 μ 0

    utilisation débit ρ W 1 utilisation temps d'attente W ≈ ( ρ 1 − ρ )S( c2 λ + c2 μ 2 ) Approximation de Kingman Formule Pollaczek-Kinchine S ( ρ 1 − ρ ) ( c2 λ + c2 μ 2 )
  19. @raphaelluta Comportement d'une M/M/k W (k, ρ) = (ρk) k

    k! (1 − ρ)∑k−1 n=0 (kρ) n n! + (kρ) k k! k (1 − ρ) + 1 Erlang C Formula application to Residence time https://www.desmos.com/calculator/4sb5grmoim
  20. @raphaelluta 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: 480 personnes/heure Temps de service: 15 sec Temps de Passage: 16s Longueur file d'attente: 0.13 Temps de Passage: 30s Longueur file d'attente: 0.5
  21. @raphaelluta Modélisation de système Web Server DB Requests Système ouvert

    Système fermé Requests Responses Queries Results
  22. @raphaelluta Propriétés d'un système fermé • Un système fermé possède

    un nombre maximal N de requêtes dans le système • Le taux d'arrivée dépend du nombre d'utilisateurs • Le temps de réponse influe sur le taux d'arrivée • Le temps d'attente est toujours borné N Z utilisateurs temporisation d'un utilisateur (N, Z) X(N) R(N) N = XR Loi de Little
  23. @raphaelluta Latence: ouvert vs fermé λ R débit temps de

    résidence N R utilisateurs temps de résidence S S μ
  24. @raphaelluta Exemple: Mesure de charge d'une API • système fermé:


    
 1 ≤ c ≤ 20; c = degré de concurrence
 
 wrk -t1 -d120 -c $c --latency $URL • système ouvert: 
 
 30 ≤ R ≤ 400; R = target request rate
 
 wrk2 -t1 -d120 -c10 -R $R --latency $URL
  25. @raphaelluta 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 https://www.desmos.com/calculator/xboiqssf9q
  26. @raphaelluta Mesures en système ouvert https://www.desmos.com/calculator/tvziz8ng6s

  27. @raphaelluta Influence de la stratégie de dépilement • La stratégie

    de dépilement influe de manière significative dans un modèle ouvert • De manière générale, prioriser les stratégies qui finissent les jobs courts le plus rapidement possible • CoDel (ou LCFS) peuvent être utiles pour améliorer la latence d'un système ouvert Open Versus Closed: A Cautionary Tale https://gettys.wordpress.com/2018/02/11/the-blind-men-and-the-elephant/
  28. @raphaelluta La loi d'extensibilité universelle

  29. @raphaelluta Le problème du réparateur synchrone En panne Equipements réparés

    N équipements tombent en panne toutes les Z secondes Réparation prend S secondes X(N) X(N) = N 1 − σ(N − 1) σ = S S + Z avec Ce problème est l'équivalent théorique du découpage parallèle de Amdahl !
  30. @raphaelluta Limite du modèle théorique • Le modèle suppose que

    le temps de service est indépendant du nombre d'utilisateurs dans le système • Si on veut tenir compte des interactions potentielles entre les utilisateurs, il faut ajouter une variable de mise en cohérence proportionnelle au nombres de liens possibles entre les utilisateurs
  31. @raphaelluta 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 https://www.desmos.com/calculator/cqj3vsu2uh
  32. @raphaelluta 2 champs d'application • Estimation de l'accélération temporelle d'une

    tâche de complexité fixe en N sous-tâches parallèles • Estimation de l'accroissement de débit d'un système parallèle à N ressources
  33. @raphaelluta Propriétés de l'USL • Facile à alimenter par des

    mesures de charge • Modèle pessimiste en particulier sur la pénalité de cohérence • Permet d'avoir une approche "black-box" des systèmes Serveurs Utilisation Erlang USL Gunther 16 0,00 0,00 0,00 16 0,10 0,00 0,00 16 0,20 0,00 0,00 16 0,30 0,00 0,00 16 0,40 0,00 0,00 16 0,50 0,01 0,00 16 0,60 0,06 0,00 16 0,70 0,30 0,04 16 0,80 1,22 0,37 16 0,90 5,32 3,28 16 0,99 94,40 90,80 16 1,00 994,31 990,53 https://github.com/VividCortex/approx-queueing-theory Estimation comparée de longueur file d'attente
 entre USL/Erlang C pour M/M/16
  34. @raphaelluta Exemples d'application • Node.js @ Paypal • Zookeeper •

    Hadoop • Job Spark https://www.desmos.com/calculator/xo8hxuroyy https://www.desmos.com/calculator/azpji2vamz https://www.desmos.com/calculator/ohouzazowa https://www.desmos.com/calculator/iq5kub44sg http://localhost:8080/#/notebook/2EZHGMZPE https://www.desmos.com/calculator/d0qctxdjwd
  35. @raphaelluta Risques / Difficultés • Très sensibles aux variations de

    mesure => Pour avoir une estimation "fiable" il faut beaucoup de point • Fiabilité des projections dépend des bottlenecks découverts ou non dans les tests
  36. @raphaelluta Récapitulatif

  37. @raphaelluta La modélisation des systèmes • Permet de compléter les

    approches de mesures empiriques pour: • Qualifier le bon fonctionnement • Anticiper des comportements anormaux • Planifier des évolutions
  38. @raphaelluta Comprendre votre contexte d'utilisation Système ouvert Système fermé Requests

    Responses Requests Responses
  39. @raphaelluta Anticiper les modes de panne λ R débit temps

    de résidence N R utilisateurs temps de résidence S S μ
  40. @raphaelluta Universal Scalability Law

  41. @raphaelluta There is no free lunch ! • Le parallélisme

    n'est pas la solution universelle à tous les problèmes de performance • Il y a toujours un rendement décroissant • Rechercher et éliminer des effets de contention et de cohérence peut être plus rentable qu'augmenter le parallélisme
  42. @raphaelluta Evolutivité des process et des organisations Scaling Organisations

  43. @raphaelluta 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
  44. @raphaelluta Merci