$30 off During Our Annual Pro Sale. View Details »

[PL] Przewidywanie zmian wydajności aplikacji rozproszonych

wrzasa
September 24, 2018

[PL] Przewidywanie zmian wydajności aplikacji rozproszonych

Prezentacja z konferencji
* Atmosphere (Kraków 16-17 maja 2017): http://2017.atmosphere-conference.com/
* SegFault (Wrocław 24 września 2018): https://segfault.events/
Oprogramowanie wykorzystywane w prezentacji jest teraz opensource: https://github.com/wrzasa/rbsim/ Daj znać, jeśli potrzebujesz wsparcia.

Polish version of "Predicting Performance Changes of Distributed Applications" presentation for my talk on
* Atmosphere conference (16-17 May in Kraków, Poland): http://2017.atmosphere-conference.com/
* SegFault conference (Wrocław 24 września 2018): https://segfault.events/
The software used in the presentation is now opensource: https://github.com/wrzasa/rbsim/ Feel free to contact me if you need assistance.

wrzasa

September 24, 2018
Tweet

More Decks by wrzasa

Other Decks in Programming

Transcript

  1. PRZEWIDYWANIE ZMIAN
    WYDAJNOŚCI APLIKACJI
    ROZPROSZONYCH
    Wojciech Rząsa
    @wrzasa
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  2. Informatyk z zamiłowania
    Inżynier z doktoratem
    Politechnika Rzeszowska
    Badania: systemy rozproszone
    Zajęcia: programowanie, bazy danych,
    Ruby, Rails, ...
    FLYR Inc.
    Rzeszow Ruby User Group
    O MNIE
    http://flyrlabs.com
    http://rrug.pl
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  3. THE GRID
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  4. (c) e-ScienceCity , .
    http://www.e-sciencecity.org/ Creative Commons Attribution-ShareAlike 3.0 Unported License
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  5. MONITOROWANIE GRIDU
    OCM-G
    Debugowanie
    Interaktywne narzędzia
    Współdzielona infrastruktura
    System rozproszony
    Brak centralnego zarządzania
    Interfejs dla narzędzi programistycznych
    Ścisłe wymagania dotyczące bezpieczeństwa
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  6. BEZPIECZEŃSTWO
    A
    WYDAJNOŚĆ
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  7. UMOŻLIWIĆ DEWELOPEROM
    SZACOWANIE WYDAJNOŚCI!
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  8. PLAN
    Jak oszacować zmiany wydajności?
    Prosty przykład
    Studium dwóch przypadków
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  9. Eds. R. Wyrzykowski et al.
    Baliś B., Bubak M., Rząsa W., Szepieniec T., Wismüller R.: Two Aspects of Security Solution for Distributed Systems in the Grid on the Example of the OCM-G. In
    proc. of CGW'03, pp.197-206, Kraków 2004 ISBN 83-915141-3-7.
    Baliś B., Bubak M., Rząsa W., Szepieniec T.: Efficiency of the GSI Secured Network Transmission. ICCS 2004, LNCS 3036, p. 107-115, 2004, Eds. M. Bubak et al.
    Rząsa W., Bubak M., Baliś B., Szepieniec T.: Simulation Method for Estimation of Security Overhead of Grid Applications. In proc. of CGW'05, pp. 300-307,
    Kraków 2006 ISBN 83-915141-5-3, EAN 9788391514153.
    Rząsa W., Bubak M., Baliś B., Szepieniec T.: Overhead Verification for Cryptographically Secured Transmission in the Grid. Computing and Informatics, Vol. 26,
    2007, 89-101.
    Rząsa W., Bubak M.: Application of Petri Nets to Evaluation of Grid Applications Efficiency. In proc. of CGW'08, pp. 261-269, Kraków 2009, ISBN 978-83-61433-00-
    2.
    Rząsa W.: Combining Timed Colored Petri Nets and Real TCP Implementation to Reliably Simulate Distributed Applications. CN 2009, CCIS 39, pp. 79-86, 2009,
    Eds. A. Kwiecień, P. Gaj, and P. Stera.
    Dec G, Jędrzejec B, Rząsa W.: Kolorowana sieć Petriego jako model systemu podejmowania decyzji kredytowej. STUDIA INFORMATICA 2010, Volume 31,
    Number 2A (89).
    Rząsa W., Bubak M.: Simulation Method Supporting Development of Parallel Applications for Grids. In proc. of CGW'10, pp. 194-201, Kraków 2011, ISBN 978-83-
    61433-03-3.
    Dec G., Rząsa W.: Modelowanie wielowarstwowej rozproszonej aplikacji www z zastosowaniem TCPN. Praca zbiorowa pod red. L. Trybusa i S. Samoleja:
    Projektowanie, analiza i implementacja systemów czasu rzeczywistego, ISBN 878-83-206-1822-8, Wyd. Komunikacji i Łączności, Warszawa 2011, pp. 137-148.
    Rząsa W., Rzońca D., Stec A., Trybus B.: Analysis of Challenge-Response Authentication in a Networked Control System, in: Kwiecien A., Gaj P., and Stera P.
    (Eds.): Computer Networks 2012, Communications in Computer and Information Science 291, Springer-Verlag Berlin Heidelberg 2012, pp. 271-279.
    Rząsa W., Bubak M., Nawarecki E.: High-Level Model for Performance Evaluation of Distributed Applications, in: Balicki J., Krawczyk H., Nawarecki E. (Eds.):
    Grid and Volunteer Computing, Gdansk University of Technology Faculty of Elektronics, Telecomunication and Informatics Press, Gdańsk 2012, pp. 7-23.
    Rząsa W.: Synchronization Algorithm for Timed Colored Petri Nets and Ns-2 Simulators, in: Kwiecień A., Gaj P., and Stera P. (Eds): CN2013, CCIS 370, pp. 1-10,
    Springer-Verlag Berlin Heidelberg, 2013, ISSN 1865-0929, ISBN 978-3-642-38864-4.
    Kowalski, M.; Rzasa, W., "Object-oriented approach to Timed Colored Petri Net simulation," Computer Science and Information Systems (FedCSIS), 2013
    Federated Conference on, pp.1401,1404, 8-11 Sept. 2013, ISBN 978-1-4673-4471-5 (Web), 978-83-60810-53-8 (USB), IEEE Catalog Number: CFP1385N-ART
    (Web),CFP1385N-USB (USB)
    Jamro M., Rzońca D., Rząsa W.: Testing communication tasks in distributed control systems with SysML and Timed Colored Petri Nets model. Computers in
    Industry, Vol. 71, August 2015, pp. 77-87.
    Rząsa W.: "Simulation-Based Analysis of a Platform as a Service Infrastructure Performance from a User Perspective", P. Gaj et al. (Eds.): CN 2015, CCIS 522,
    pp. 182–192, 2015 ISBN: 978-3-319-19418-9.
    Rząsa W., Rzońca D.: Event-Driven Approach to Modeling and Performance Estimation of a Distributed Control System, in: Gaj P., Kwiecień A., and Stera P.
    (Eds.): Computer Networks 2016, Communications in Computer and Information Science 608, Springer International Publishing 2016, pp. 168-179.
    Rząsa W., Rzońca D.: Event-Driven Approach to Modeling and Performance Estimation of a Distributed Control System, in: Gaj P., Kwiecień A., and Stera P.
    (Eds.): Computer Networks 2016, Communications in Computer and Information Science 608, Springer International Publishing 2016, pp. 168-179.
    Rząsa W.: Predicting Performance in a PaaS Environment: a Case Study for a Web Application. Computer Science, [S.l.], vol. 18(1), pp. 21 -39, 2017. ISSN 2300-
    7036.
    Rząsa W., Jamro M., Rzonca D.: Improving Accuracy of a Network Model Basing on the Case Study of a Distributed System with a Mobile Application and an
    API. In: Gaj P., Kwiecień A., Sawicki M. (eds) Computer Networks. CN 2017. Communications in Computer and Information Science, vol 718. Springer, Cham, pp
    14-27, DOI: 10.1007/978-3-319-59767-6_2
    Rzońca D., Rząsa W., Samolej S.: Consequences of the Form of Restrictions in Coloured Petri Net Models for Behaviour of Arrival Stream Generator Used in
    Performance Evaluation, in: Gaj P., Sawicki M., Suchacka G., Kwiecień A. (Eds.): Computer Networks. CN 2018. Communications in Computer and Information
    Science, vol 860. Springer, Cham, 2018, pp. 300-310.
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  10. PODSTAWY STOSOWANEJ
    METODY
    Symulacja
    Model opisany językiem dziedzinowym (DSL)
    Symulator bazujący na formalizmie
    Statystyki dostępne za pomocą API
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  11. PROSTY PRZYKŁAD
    Serwer www
    Klienci www
    Zasoby sprzętowe
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  12. SERWER WWW
    program :apache do
    on_event :data_received do |data|
    stats_start server: :apache, name: process.name
    cpu do |cpu|
    (100 * data.size.in_bytes / cpu.performance).miliseconds
    end
    send_data to: data.src, size: data.size * 10,
    type: :response, content: data.content
    stats_stop server: :apache, name: process.name
    end
    end
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  13. KLIENT WWW
    program :wget do |opts|
    sent = 0
    on_event :send do
    # . . .
    end
    on_event :data_received do |data|
    # . . .
    end
    register_event :send
    end
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  14. KLIENT WWW — SEND
    program :wget do |opts|
    sent = 0
    on_event :send do
    cpu { |cpu| (150 / cpu.performance).miliseconds }
    send_data to: opts[:target], size: 1024.bytes,
    type: :request, content: sent
    sent += 1
    if sent < opts[:count]
    register_event :send, delay: 5.miliseconds
    end
    end
    on_event :data_received do |data|
    # . . .
    end
    register_event :send
    end
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  15. KLIENT WWW — RECEIVE
    program :wget do |opts|
    sent = 0
    on_event :send do
    # . . .
    end
    on_event :data_received do |data|
    log "Got data #{data} in process #{process.name}"
    stats event: :request_served, client: process.name
    end
    register_event :send
    end
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  16. ZASOBY SPRZĘTOWE
    node :desktop do
    cpu 100
    end
    node :gandalf do
    cpu 1400
    end
    net :net01, bw: 1024.bps
    net :net02, bw: 510.bps
    route from: :desktop, to: :gandalf,
    via: [ :net01, :net02 ], twoway: true
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  17. PROCESY NA WĘZŁACH
    new_process :client1, program: :wget,
    args: { target: :server, count: 10 }
    new_process :client2, program: :wget,
    args: { target: :server, count: 10 }
    new_process :server, program: :apache
    put :server, on: :gandalf
    put :client1, on: :desktop
    put :client2, on: :desktop
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  18. MODEL ZAPISANY
    np. w model.rb
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  19. URUCHOMIENIE SYMULACJI
    class Experiment < RBSim::Experiment
    end
    params = { }
    sim = Experiment.new
    sim.run './model.rb', params
    sim.save_stats 'simulation.stats'
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  20. ANALIZA WYNIKÓW
    class Experiment < RBSim::Experiment
    def print_req_times_for(s)
    app_stats.durations(server: s) do |tags, start, stop|
    puts "Req. time #{(stop - start).in_miliseconds} ms."
    end
    end
    end
    all_stats = Experiment.read_stats 'simulation.stats'
    first_experiment = all_stats.first
    first_experiment.print_req_times_for(:apache)
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  21. PODSUMOWANIE PRZYKŁADU
    Model w DSL
    Bez zbędnego kodu
    Serwer i klient www (~30 LoC)
    Zasoby sprzętowe (~12 LoC)
    Mapowanie procesów na zasoby (~6 LoC)
    Uruchomienie symulacji (~8 LoC)
    Załadowanie zapisanych wyników (~3 LoC)
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  22. STUDIUM PRZYPADKU #1
    RAPGENIUS PRZECIWKO HEROKU
    LUTY 2013
    https://genius.com/James-somers-herokus-ugly-
    secret-annotated
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  23. "ROUTING" HTTP W HEROKU
    "Inteligentny"
    Losowy
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  24. DLA HEROKU
    Doskonała skalowalność
    Bez wykrywania zajętych/wolnych dyno
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  25. DLA KLIENTA
    Czy losowy ruting jest gorszy?
    O ile gorszy?
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  26. https://genius.com/James-somers-herokus-ugly-
    secret-annotated
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  27. -- E. Dijkstra
    In the good old days physicists
    repeated each other's experiments,
    just to be sure. Today they stick to
    FORTRAN, so that they can share each
    other's programs, bugs included.
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  28. DO ZAMODELOWANIA
    Losowy ruter HTTP
    "Inteligentny" ruter HTTP
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  29. LOSOWY RUTER HTTP
    program :random_router do |servers|
    on_event :data_received do |data|
    if data.type == :request
    server = servers.sample
    send_data to: server, size: data.size, type: :request,
    content: { from: data.src, content: data.content }
    elsif data.type == :response
    send_data to: data.content[:from], size: data.size,
    type: :response,
    content: data.content[:content]
    else
    raise "Unknown data type #{data.type} received " +
    "by #{process.name}"
    end
    end
    end
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  30. INTELIGENTNY RUTER HTTP
    program :router do |servers|
    request_queue = []
    on_event :data_received do |data|
    # . . .
    end
    on_event :process_request do
    # . . .
    end
    end
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  31. INTELIGENTNY RUTER HTTP
    on_event :data_received do |data|
    if data.type == :request
    request_queue << data
    register_event :process_request
    elsif data.type == :response
    servers << data.src
    send_data to: data.content[:from], size: data.size,
    type: :response, content: data.content[:content]
    register_event :process_request
    else
    raise "Unknown data type #{data.type} received " +
    "by #{process.name}"
    end
    end
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  32. INTELIGENTNY RUTER HTTP
    on_event :process_request do
    unless servers.empty? or request_queue.empty?
    data = request_queue.shift
    server = servers.shift
    send_data to: server, size: data.size, type: :request,
    content: { from: data.src, content: data.content }
    unless request_queue.empty?
    register_event :process_request
    end
    end
    end
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  33. ZASOBY SPRZĘTOWE
    (PRZYKŁAD)
    servers.each do |s|
    node s do
    cpu 1
    end
    new_process s, program: :webserver,
    args: { request_times: params[:request_times] }
    put s, on: s
    end
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  34. WYNIKI
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  35. Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  36. Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  37. Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  38. MOŻE APDEX?
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  39. Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  40. A CO JEŚLI?
    będzie więcej "inteligentnych" ruterów?
    skalowalność + wydajność dla użytkowników?
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  41. Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  42. Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  43. Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  44. Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  45. Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  46. Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  47. PODSUMOWANIE PRZYKŁADU #1
    Reużywalność (elementy modelu)
    Elastyczność (dowolne algorytmy ruterów)
    Różne poziomy szczegółowości wyników
    histogramy
    apdex
    Analiza hipotetycznych sytuacji
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  48. STUDIUM PRZYPADKU #2
    SKALOWAĆ APLIKACJĘ NA HEROKU ...
    ...CZY NIE SKALOWAĆ?
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  49. DYNO NA HEROKU
    Nazwa RAM CPU
    share
    Compute cena za dyno-
    mies.
    standard-
    1x
    512MB 1x 1x-4x $25
    standard-
    2x
    1024MB 2x 4x-8x $50
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  50. API BACKEND
    Rails
    Unicorn
    CPU intensive
    6 dyno typu standard-1x
    przeskalować do 3 standard-2x?
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  51. UNICORN
    Master process
    Równoważy obciążenie workerów (procesów)
    Podobny do starego "inteligentnego" rutera
    Heroku!
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  52. PRZESKALOWANIE APLIKACJI
    2x szybsze dyno
    2x mniej dyno
    Więcej workerów Unicorna na dyno
    Ta sama liczba workerów w aplikacji
    Ta sama cena
    Więcej RAMu dla procesów
    Lepsze równoważenie obciążenia?
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  53. PARAMETRY APLIKACJI
    Obciążenie (żądania/min)
    Czasy odpowiedzi (rozkład)
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  54. DO ZAMODELOWANIA
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  55. PONOWNIE UŻYTE ELEMENTY
    MODELU
    Klient HTTP
    Serwer HTTP
    Losowy ruter HTTP
    Master process Unicorna
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  56. MODELOWANIE DYNO
    ALBO
    node :standard1x do
    cpu 1
    end
    node :standard2x do
    cpu 2
    end
    node :standard2x do
    cpu 1
    cpu 1
    end
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  57. DYNO NA HEROKU
    Nazwa RAM CPU
    share
    Compute cena za dyno-
    mies.
    standard-
    1x
    512MB 1x 1x-4x $25
    standard-
    2x
    1024MB 2x 4x-8x $50
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  58. SKALOWANIE DYNO
    POZIOME CZY PIONOWE?
    A CZY TO MA ZNACZENIE!?
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  59. SYMULACJA DLA
    I DLA
    node :standard2x do
    cpu 2
    end
    node :standard2x do
    cpu 1
    cpu 1
    end
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  60. POZIOME SKALOWANIE DYNO
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  61. PIONOWE SKALOWANIE DYNO
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  62. TO JAK SĄ SKALOWANE DYNO
    JEST ISTOTNE!
    JAK TO SPRAWDZIĆ?
    dokumentacja nie pomaga...
    cat /proc/cpuinfo nie pomaga...
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  63. EKSPERYMENT
    (NA RÓŻNYCH DYNO NA HEROKU)
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  64. POJEDYNCZE ZADANIE
    OBLICZENIOWE
    Porównanie czasu na dwóch typach dyno
    def cpu_intensive_task(n)
    start = Time.now
    (1..n).reduce(:*)
    Time.now - start
    end
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  65. 16 ZADAŃ OBLICZENIOWYCH
    na standard-1x (2 CPU)
    na standard-2x (4 CPU)
    real 1m8.690s
    user 2m13.360s
    sys 0m3.871s
    real 0m29.182s
    user 2m17.570s
    sys 0m4.053s
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  66. WNIOSEK
    Dyno są skalowane poziomo (więcej CPU)
    Nie należy zmieniać konfiguracji dyno
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  67. RACHUNEK!
    $0.09
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  68. PODSUMOWANIE PRZYKŁADU #2
    Model z reużywalnych elementów
    Alternatywne rozwiązania testowane symulacyjnie
    Proste, tanie eksperymenty do weryfikacji
    kluczowych czynników
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide

  69. PODSUMOWANIE
    Ławiej, taniej, szybciej
    DSL, bez zbędnego kodu
    Hipotetyczne sytuacje
    No magic — just software science
    Simulation as a Service ;-)
    Metoda gumowej kaczki
    Wojciech Rząsa @wrzasa Przewidywanie zmian wydajności aplikacji rozproszonych

    View Slide