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

Les Lois Universelles de la Perfomance - TNT23

rluta
January 23, 2023
26

Les Lois Universelles de la Perfomance - TNT23

rluta

January 23, 2023
Tweet

Transcript

  1. #TNT23
    Les lois universelles

    de la performance
    Raphaël Luta - @raphaelluta

    View full-size slide

  2. #TNT23
    C'est trop lent !
    Temps total de référence
    T1
    2

    View full-size slide

  3. #TNT23
    Paralléliser pour aller plus vite
    Tn
    = T1
    σ +
    T1
    (1 − σ)
    n
    sérialisée
    σ parallélisable
    1 − σ
    T1
    T2
    T4
    4

    View full-size slide

  4. #TNT23
    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:

    View full-size slide

  5. #TNT23
    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

    View full-size slide

  6. QUEUES
    QUEUES EVERYWHERE

    View full-size slide

  7. #TNT23
    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

    View full-size slide

  8. #TNT23
    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

    View full-size slide

  9. #TNT23
    Lequel de ces 2 systèmes possède les meilleurs
    performances ?
    Backlog mutualisé / pull
    Débit d'arrivée:
    7 tickets/jour
    Temps de service:
    0,5 jour
    Temps moyen ticket: 1,25 j
    Tickets en attente: 5
    Temps moyen ticket: 4 j
    Tickets en attente: 24
    14*3
    Backlog personnel / push

    View full-size slide

  10. #TNT23
    Modélisation de système
    Web


    Server
    DB
    Requests
    Requests Responses
    Responses
    84/2

    View full-size slide

  11. #TNT23
    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

    View full-size slide

  12. #TNT23
    Mesures de latence d'une API
    tvziz8ng6s
    wrk2 -t1 -d120 -c10 -R $R --latency $URL; 30 ≤ R ≤ 300
    21*2

    View full-size slide

  13. #TNT23
    Modélisation de système
    Web


    Server
    DB
    Requests
    Système ouvert
    Requests Responses
    Système fermé
    Request
    Response
    Users
    Responses
    21+21

    View full-size slide

  14. #TNT23
    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
    wrk2 -t1 -d120 -c $c --latency $URL; 1 ≤ c ≤ 20
    42/1 https://github.com/giltene/wrk2

    View full-size slide

  15. #TNT23
    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

    View full-size slide

  16. #TNT23
    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

    View full-size slide

  17. #TNT23
    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

    View full-size slide

  18. #TNT23
    Récapitulatif

    View full-size slide

  19. #TNT23
    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

    View full-size slide

  20. #TNT23
    Comprendre votre contexte d'utilisation...
    Système ouvert Système fermé
    Requests Responses
    Requests
    Responses
    7*6

    View full-size slide

  21. #TNT23
    Pour anticiper les modes de panne
    λ
    R
    débit
    temps
    de résidence
    N
    R
    utilisateurs
    temps
    de résidence
    S
    S
    μ
    36+6

    View full-size slide

  22. #TNT23
    Universal Scalability Law
    43-1

    View full-size slide

  23. #TNT23
    Evolutivité des
    process et des
    organisations
    Scaling Organisations
    48-6

    View full-size slide

  24. #TNT23
    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

    View full-size slide

  25. #TNT23
    Merci
    https://bit.ly/lois-performance-tnt23
    Illustrations: © Walt Disney - Pixar

    View full-size slide