Performance evaluation Flashcards

1
Q

Quali sono gli approcci di performance evaluation?

Quali sono gli approcci di comparison?

Quali sono i nostri parametri? nel grafico dove vogliamo rimanere (verde, giallo, rosso)? Quali sono le problematiche del futuro?

A

Abbiamo:
- Sistemi reali (bench marking)
- Modelli fisici: con prototipi su piccola scala, fare scale up del risultato
- Modelli matematici: equazioni che imitano il comportamento di un sistema, gestibili, what if scenari
- Simulatori: software che implementano il comportamento di un sistema
______
- Sistema reali vs modello: facile da fare e meno costoso/pericoloso
- fisico vs matematico: facile da realizzare, poco costoso e facile da modificare, i modelli matematici devono essere accurati
- soluzioni analitiche vs simulazione: Analitico è più precisio la sim è più flessibile
____
response time
throuput: quante richieste soddisfatte in unità di tempo
error rate
Vogliamo rimanere prossimi alla fine della zona verde.

Il workload può aumentare (rischio di overload), errori possono saltare fuori, dobbiamo fare del buon capacity planning ed è un compito complesso e costoso potenzialmente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quali sono le tipologie di Testing?

A

Functional: se si comporta come aspettato (Unit testing, vediamo i risultati attesi e se ci sono bugs)

Activity: come funziona in condizioni normali, al di fuori dello unit testing, fatto dallo user

Endurance: sistema busy, per what if scenarios per capacity planning

Stress: sistema al limite, creiamo failures, cerchiamo i bottleneck e se c’è presenza di trashing

Benchmarking: sistema sotto load standardizzati per comparare con altri scenari etc…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cosa sono i benchmark?

Quali sono i tipi?

Quali sono i possibili abusi?

Quali sono gli standard?

A

Abbiamo i toy benchmark per scenari circoscritti facili da usare ma non molto rappresentativi, come ad esempio, quick sort, problema delle otto regine etc… (e sti cazzi?)

Real benchmark: usiamo software dedicati per testare le performance del sistema (es. ray tracing, compiling kernel linux) ha problemi di porting e di ottimizzazione (es. driver gpu assenti e viene usata la cpu) se usiamo più software come li pesiamo.

Benchmark Sintetici: prendono operazioni comuni dei software, tipicamente limitato dall’architettura HW. Si focalizzano su un aspetto, es. dhrystone per operazini integer e whetstone per floating point

Benchmark reali
Considero le applicazioni oltre agli algoritmi (non fa solo quicksorts) ma lavora su problemi reali (no compiling kernel linuz)
_____
Alcuni casi abbiamo architettura HW ottimizzati per il benchmarking. es. PowerPC ha un istruzione hw per operazioni multiply and sum dei vettori, per il calcolo matriciale fatto da Whetstone.

Alcuni benchmark modificano il source code…

In alcuni casi abbiamo l’ottimizzazione dei compiler, i benchmark sono in formato binario (pre-compiled).

I bench homebrew non sono molto affidabili che funziona su diverse feature in certi scenari. Se vengono mostrati solo alcuni subset di benchmarks è sospetto.

Certe curve vengono croppate dove magari il mio benchmark comincia a avere un tendenza esponenziale su carichi alti. (pagare il doppio per 10% di velocità in piu o 50% per il doppio della velocità?) Piccoli cambi si notano di più a carichi pesanti.

Ogni cosa deve essere spiegata in modo chiaro e motivato.
___

Ci sono delle organizzazioni che modellano e standarizzano i benchmark come SPEC e TPC.

SPEC Web: benchmark che cerca di creare workload per sito web generale, usa un workload rapresentativo basato su logs. Definisce un controller, tanti client e un server

SPEC-cloud: per IaaS nel contesto di scalabilità ed elasticità.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quali sono i contributi del response time in un server multi tier? Che cos’è il node model?

Che cos’è il network model?

Complex model?

A

Network, front end, middle tier node, back end node

Ogni nodo: CPU time + storage time + communication LAN
Il node model è composto da CPU, LAN e Storage
(rete, disco e CPU)
____
E’ un modello detto di Queeing che ha un traffico di pacchetti in input, una coda dove i pacchetti aspettano per essere serviti, server e in output le richieste processate.

Queue -> CPU con core in parallelo -> storage -> LAN -> output
___

Front end (parallelo) -> Middle tier (parallelo) -> back end (parallelo) -> Network (bottleneck)
ognuno ha una coda

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Formalizzazione del problema di Modeling, quali sono i contributi del Workload?

Quali sono le metriche di performance? Che cosa sono i jobs?

In cosa consiste la legge dell’utilizzazione?

A

Abbiamo 1 nodo con CPU,LAN e storage e 1 server

Workload:
- Si service time medio alla risorsi i-esima (1/mu)
- Wi tempo di attesa i-esima fila
- Lambda i arrival rate alla fila i-esima
____
Metriche di performance:
- Ri response time avg i queue
- Xi troughput queue i
- X0 overall system troughput
___
Number of jobs at a resource
- Niw richieste in waiting per la risorsa i
- Nis numero di richiesto servite
- Ni numero di richieste alla risorsa i
______
La legge di Little considera un periodo di osservazione tau, e abbiamo il tempo di busy nel periodo Bi e Ci che è il numero di richieste completate nel periodo.
La legge dice che
- l’utilizzazione Ui = Bi/tau.
- Xi= Ci/tau
- Ui = Si/m * Xi (dove m è il numero di server)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

legge di Little

modelli open loop vs closed loop

A

Abbiamo un sistema che è una Black Box
- N richieste entranti
- X richieste uscenti throughput
- R time spent within the system

N=X*R

Se lo applichiamo al nostro problema
Niw = Xi * Wi
Nis = Xi * Si
Ni = Xi * Ri
______
Open loop: potenzialmente utenti infiniti, richieste entrano ed escono dal sistema

Closed loop: utenti finiti. le richieste ciclicano e think time degli users
con la legge di Little, closed loop formulation (pop M, think time Z)
R+Z = M/X

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cosa sono i modelli analitici?

In cosa consiste il processo di Poisson? Come calcoliamo il tempo di risposta?

Come calcoliamo il tempo il tempo medio di response e waiting?

A

Nel modello analitico abbiamo i job che arrivano e quelli processati che sono entrambi processi stocastici.

arrival/process/servers/queuelen/num proces (inf.)
M -> poisson
G -> generic
D -> Deterministic
Ek -> Erlang (multi stadio con tanti server in cascata)
___
Processo di Poisson possono essere descritto come una catena di Markov:
- arrival rate lambda
- leave rate mu
- utilizzazione ro=lambda/mu
- probabilità di essere in un stato k: Pk=(1-ρ)ρK

Mano a mano che arrivano oggetti passo a uno stato, e torno indietro ogni volta che lo servo.

Tresp = 1/(μ - λ)
___
Usiamo la formula di Pollaczek-Kichin (M/G/1) per sapere il tempo di attesa in coda e quello di risposta.

coefficiente di variazione Cv^2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Come classifichiamo le failures?
Quali sono le metriche? Quali sono le classi di avalailability?

A

Permanent
Recoverable
Transient: sparisce dopo un po’
Intermittent
Funzionale: Si guasta una funzione che funziona come non dovrebbe

Di performance: SLA Violations, sistema funziona ma non nelle prestazioni desiderate

Totale: si canna tutto, anche se si schianta una componente critica

Paraziale: solo un certo sottosistema
____
MTTF
MTTR
MTBF (Meantime Between Faults) = MTTF + MTTR
Availability = MTTF/MTBF
reliability tau= prob che un sistema sia available su un certo periodo, se allunghiamo il periodio convergiamo alla availability
___
1 unmanaged (36 giorni di unavailable)
2 managed (3-6 giorni di unavailable)
3 well managed (526 minuti di unavailable)
4 fault tolerant (53 minuti di unavailable)
5 highly available (0.53minuti di unavailable)
6 very ha 0.053minuti di unavailable)
7 ultra available 0.0053minuti di unavailable)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

In cosa consiste gestire una failure?

Come interagiscono i sistemi?

Teorema del CAP?

A

E’ un doppio compito:
Detection: devo rilevarlo subito (prima dei clienti)
- preventiva: facciamo dei test preventivi
- concorrente

Recovery: ripristinare lo stato di funzionamento
- error handling(dipendeMTTR): rollback allo stato corretto, rollforward(salto allo stato finale), compensazione con sistemi idle

  • fault handling: diagnosis (post mortem analysis), isolation, reconfiguration, re-intialization
    ______
    Abbiamo n subsystems che interagiscono in diversi modi
    Serie : lampadine di natale
    R(reliability)=produttoria[i] ri

parallelo: se un elemento s’interrompe ho solo un degrado
R = 1 - prod(1-ri)
___
Possiamo solo avere 2 su 3
Consistency

Partition Tolerance: funziona anche se ho problematiche durante lo scambio di messaggi (abbiamo 2 sistemi)

Availiability

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Workload forecasting qual’è il processo e a cosa serve?

Quali sono i metodi per misurare l’errore?

Come vediamo la predicibilità di una serie?

A
  • Definiamo cosa vogliamo predire
  • Selezioniamo la fonte delle info
  • Aggreghiamo i dati
  • Costruiamo modelli
  • Forecast e validation

Vogliamo predirre il workload, e ci sono vari parametri come il session arrrival rate, richieste per session, think time, workload mix, response size.
Magari abbiamo tante richieste ma chiede solo l’homepage.
Dobbiamo vedere se ci serve davvero un modello complesso e su quali dati lavoro.
____
I dati possono filtrarli, magari un’analisi di fourier per dei pattern periodici.
_____
Misure d’errore:
Errore medio sum (yi-fi)/n

Errore quadratico medio sum (yi-fi)^2/n

Summa degli square error sum (yi-fi)^2

Funzioni d’interpolazione (comune se voglio intercettare dei trend): Y=a+bX

Minimize square error
___
Autocorrelazione: correlazione di una var con se stessa nel tempo. es. vediamo la correlazione tra X(T) e X(T-lag) come funzione di lag.

Slow autocorrelation decay: prevedibile

Fast decay: serie altamente irregolare

Controlliamo se abbiamo dei picchi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Cosa sono le simulazioni? Quali sono i loro obbiettivi?

Tipi di simulazione?

Quali sono i vantaggi dei simulatori? e svantaggi?

Come funziona un simulatore discreto?

A

La simulazione consiste nel definire un modello astratto del sistema e testare il suo comportamento in diverse situazioni. Tipicamente è semplificato, ma il livello di semplificazione dipende dall’obbiettivo della sim….
____
- Statico o Dinamico (se considero il tempo)
- Deterministici o Stocastici (il più comune)
- Tempo discrete a eventi o Tempo continue (non possiamo dividere il tempo a eventi)
____
Ci permettono di gestire sistemi complessi con var random, o che hanno dificoltà di trovare un modello analitico, analizzare diversi scenari e più facili da controllare rispetto a un prototipo.
___
Sono solo una stima e sono buoni quanto il modello che implementano.
____
Un simulatore discreto ha uno stato con clock, delle routines che sono funzioni invocate al momento giusto inizializzazione, timing (selezione dell’evento) e event management. C’è anche una funzione main per lo startup e shutdown

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quali sono gli step per una buona simulazione?

A

1) Formuliamo il problema, definendo l’obbiettivo, le KPI da misurare, gli scenari e le domande da rispondere.

2) Definiamo un modello, collezzionando i dati, documentando le assunzioni del modello, il livello di dettaglio

3) Fare validation del modello, confrontandosi con esperti

4) SW development

5) Simulator validation:
- confrontare con dati o modello teorico
- fare una sensitivity analysis rispetto ai parametri

6) Gli esperimenti:
- dobbiamo definire la lunghezza della run
- numero delle run
- c’è un transitiorio da evitare durante l’accensione

7) Scriviamo il report che presenta dati, le decisioni di management, assunzioni e limiti.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quali sono i pitfalls comuni?

Perchè fare esperimenti ripetuti?

Quali sono gli effetti di una varianza bassa o alta?

A

Livello di dettaglio errato (troppo o poco), modello sbagliato (input, KPI…), analisi di statistica errata.
____
Ogni esperimento ha un seed RNG diverso e sono statisticamente indipendenti. Bisogna fare esperimenti con varianza, media e e intervallo di confidenza.
____
bassa: picchi alti e sottili
alta: picchi bassi e larghi

Se non abbiamo intervalli di confidenza, abbiamo poco in mano, se è basso vuol dire che non ho modo di capire cosa sta succedendo. In esame chiede un KPI (nelle slide)
u + σ -> 68% confidenza
u + 3σ -> 99% confidenza

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Qual’è il processo di creazione dei modelli?

Quali sono le tecniche di verification?

A
  • Validation: dobbiamo verificare che il modello è implementato bene, cioè rispecchia il sistema. Non sempre riusciamo a descrivere tutto, a volte conviene andare a blocchi.
  • Verification: Implentazione del sw
  • Stabilire credibilità: le info sono accettate da esperiti

__________
Evitiamo soluzioni raffinate e complesse perchè non sono scalabiliti e difficili da testare. testare su un uno spazio ampio di parametri e tracciare tutto.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Come sono le variabili in input? Quali sono i vantaggi del rng e quali gli svantaggi?

Come capiamo l’indipendenza dei samples?

A

Sono variabili random e sono descritti da una distribuzione exp (Gaussiana) o normale.
___
Se abbiamo il seed possiamo riprodurre l’esperimento, dobbiamo selezionare il seed però e può diventare un random like.
___
Vediamo l’indipendenza tra le variabili tramite valori o plots. Vediamo se ci sono autocorrelazioni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Come sono i plots?

A

Box plot
outliers|(min)—-[25 percentile(mediana)75 percentile]—(max)|outlier

Violin plot: density probability+ box plot

P-P plot

Q-Q plot

17
Q

Come possono essere le analisi?

Quali sono le tipologie di analisi output?

Come riduciamo la varianza?

A
  • steady state: come il throuput di un pc sotto un certo workload, può cambiare nel tempo. C’è un transitorio quando il sistema è ancora cold, possiamo fare simulazioni lunghe per diminuire l’impatto ed evitiamo di raccogliere dati in quel periodo. Facciamo analisi della varianza e dei trends.
  • comportamenti transitori: evoluzione di un throughput surge e cloud scale up
    ____
    Terminating: terminazione naturale di un evento, si concentra sul transitorio

Non terminating: non ci sono eventi di terminazione
- analisi parametri steady state: evita gli effetti del transitorio, assumiamo che lo stato rimane costante nel tempo
- analisi parametri steady state cycle: si concentra su pattern che si ripetono
- altro
_____

Ci sono vari approcci:
- Common random numbers: quando compariamo diversi modelli con lo stesso seed
- Antithetic Variates: usiamo RNG così la correlazione è negativa e la media stabile
- Control Variaties: se 2 var sono correlate possiamo usare la correlazione per ridurre la varianza