Performance evaluation Flashcards

1
Q

Quali sono gli approcci di performance evaluation?

Quali sono gli approcci di comparison?

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 scenario
  • 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ù preciso la sim è più flessibile
    ____

Dobbiamo fare del buon capacity planning per gestire carichi futuri, è un task complesso e può causare costi significativi se non fatto bene(bolletta elettrica), con anche violazioni di SLA. Evitiamo modelli troppo semplificati e/o che non tengono conto della varianza.

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

Quali sono le tipologie di Testing su sistemi reali?

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

Quali sono i tipi di benchmark?

Quali sono i possibili abusi?

Quali sono gli standard?

A
  • 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), quindi trattiamo problemi più rappresentativi in scenari stardizzati. 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

_____
Alcuni casi abbiamo HW ottimizzati per il benchmarking (PowePC per le istruzioni di sum/mul dei vettori per il calcolo matriciale di Whetstone), benchmark modificano il source code, l’ottimizzazione dei compiler (i benchmark sono in binario), benchmark homebrew, sus se ci sono solo alcuni subset, grafici croppati.
___

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 rappresentativo basato su logs.

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

Come possiamo immaginare un network model? Qual’è la differenza tra open e closed loop?

Cosa sono i modelli analitici/code?

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

Possiamo considerarli come web server multi tier dove i contributi al response time sono network, front, back end middle tier. Inoltre ogni nodo ha CPU, Storage e network.

Open loop abbiamo utenti infiniti e le richieste entrando ed escono, mentre nel closed le richieste sono sempre le stesse con un popolo finito di utenti e e c’è un think time degli utenti.

______
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
- leave rate
- utilizzazione ρ
- 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/(μ - λ)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
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
6
Q

In cosa consiste gestire una failure?

Come interagiscono i sistemi?

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

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

Cosa porta l’analisi dei dati storici?

Quali sono i metodi per misurare l’errore?

Come vediamo la predicibilità di una serie?

A

Il forecasting è un’attività nel quale noi cerchiamo di prevedere come il workload evolverà nel tempo, possiamo avere tanti parametri da considerare(arrival rate, ….).

Il processo è il seguente:
- Definiamo cosa vogliamo predire
- Selezioniamo la fonte delle info (interviste,reports, dati storici…)
- Aggreghiamo i dati
- Costruiamo modelli
- Forecast e validation(facciamo forecasting sul passato per vedere come va)

Dobbiamo vedere se ci serve davvero un modello complesso e su quali dati lavoro.
_____
Analizzando i dati storici possiamo scoprire trends periodici e patterns (magari un’analisi di fourier per dei pattern periodici).
_____
Misure d’errore:
- Errore medio
- Errore quadratico medio
- Somma degli square error
___
Con l’autocorrelazione possiamo definire quanto è prevedibile un serie, decay lenti vuol dire maggiore prevedibilità e picchi a ritardi segnalano comportamenti periodici.
es. vediamo la correlazione tra X(T) e X(T-lag) come funzione di lag per trovar legami tra passati e futuri.

Slow autocorrelation decay: prevedibile

Fast decay: serie altamente irregolare, poco prevedibile

Controlliamo se abbiamo dei picchi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
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 ha l’obbiettivo di creare un modello (rappresentazione astratta del sistema) del sistema e testare il suo comportamento in diverse situazioni, il livello di semplificazione dipende dall’obbiettivo.
____
- 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)
____
Una simulazione è solo una stima, quindi buona quanto fedele il modello, che è non è ovvio da trovare, possiamo gestire sistemi complessi con var randomiche e analizzare diversi scenari.
____
Un simulatore discreto ha uno stato con clock, delle routines che sono funzioni invocate al momento giusto inizializzazione.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
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
10
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.

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

Quali sono le tecniche di verification?

Quali sono tecniche per migliorare la validation?

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: Veririfichiamo che il software sia implementato bene
  • Stabilire credibilità: Cerchiamo saggezza da esperti, fare validazione con casi/studi esistenti, osservare il sistema e raccogliere dati.

Evitiamo soluzioni raffinate e complesse difficili da testare. testare su un uno spazio ampio di parametri e tracciare tutto.

_____

Facciamo Unit Test dei componenti, revisione del codice, riprodurre esperimenti usando le tracce. Confrontare con i modelli teorici e/o con dati storici.

___
Ci confrontiamo con esperti, osserviamo il sistema raccogliendo dati, fare riferimenti alla teoria esistente o studi precedenti.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
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 statistica come exp o normale.
___
Se abbiamo il seed possiamo riprodurre l’esperimento, dobbiamo selezionare il seed però e può diventare un random like. Lo svantaggio risiede nel fatto che non sembrerebbe causale con un seed si possono trovare correlazioni e pattern ripetuti, la scelta dell’RNG e SEED adattato per la simulazione è importante.
___
L’indipendenza tra variabili è un concetto fondamentale che implica che il valore di una variabile non influisce sul
valore di un’altra variabile, vediamo se ci sono correlazioni forti o deboli con l’indice di pearson, tramite anche dei plots. Vediamo anche serie temporali, come tra i valori attuali e quella dopo un lag, per vedere se i passati influenzano quelli futuri.

es. se una serie è piatta è poco autocorellata

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

Quali sono i diversi obbiettivi della simulazione?

Quali sono le tipologie di analisi dell’output?

Come riduciamo la varianza?

Quali sono le tecniche di analisi steady state cycle?

Come riduciamo la varianza?

A
  • steady state: : Studiare il comportamento di un sistema quando raggiunge un equilibrio o una condizione stabile, in cui le sue proprietà (come il throughput o l’uso delle risorse) non cambiano
    significativamente nel tempo.
  • comportamenti transitori:Analizzare il comportamento del sistema durante il passaggio da
    uno stato iniziale (potenzialmente instabile) a uno stato stazionario. Si concentra su come il sistema
    risponde a cambiamenti improvvisi, come un aumento del carico di lavoro
    ____
    Terminating: Ha un evento di terminazione naturale e si concentra sul transitorio e si concentra dall’inizio alla fine del ciclo. Ci contriamo sul transitorio, per vedere come si comporta il sistema prima di stabilizzarsi.
    es. analisi flusso di client fino alla chiusura del negozio

Non terminating: non ci sono eventi di terminazione per sistemi che operano a lungo termine, sono pensati per studiare parametri come il troughput, l’efficienza ….

  • ‘analisi del ciclo dello stato stazionario: evita si concentra sull’osservazione di come un sistema si comporta durante cicli ripetitivi, come quelli che si verificano su base giornaliera o settimanale, evidenziando i modelli che si ripetono nel tempo. In particolare, l’analisi del ciclo dello stato stazionario può essere divisa in due principali aree
    di interesse:
    - Analisi della varianza: cerchiamo di trovare e comprendere la presenza di oscillazioni nel sistema
    - Analisi tendenze: cerchiamo pattern nel lungo temine

________
Le tecniche utilizzate nel analisi del ciclo steady state sono ICA (Independent Component Analysis) che usa filtri per identificiare segnali di origini diverse e rimuovere il rumore, e poi abbiamo EWMA(media mobile ponderata) per fare smoothing del rumore e identificare trends sottostanti a lungo termine e prevedere tendenze future.
_____
- CNR : common random numbers, usiamo dei seed che danno numeri casuali comuni per determinare che la varianza sia causata da una cambio di config
- AV: antithetic variables: approccio dove i numeri causali sono negativamente correllati
- Control variates: se conosciamo 2 variabili correlate possiamo sfruttare tale correlazione per ridurre la varianza.

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