Mondo IT

recensioni, articoli e approfondimenti sul mondo IT

XEN: Gli scheduler SEDF e Credit

with 2 comments

Come funzionano gli scheduler tuttora utilizzati dal sistema di virtualizzazione XEN? Lo spiegheremo in questo articolo.

Sono due gli scheduler presenti e utilizzabili in questo momento nell’hypervisor di XEN, entrambi in grado di lavorare in work conserving mode. La work conserving mode è la capacità di uno scheduler di dare a un dominio, in alcune condizioni, l’intera CPU.

Credit scheduler è quello utilizzato di default dall’hypervisor, è il più giovane e ancora in fase di sviluppo. SEDF invece non è più sviluppato ma viene ancora rilasciato perché più stabile per alcune specifiche applicazioni. A livello algoritmico i due scheduler differiscono per i criteri con cui ordinano una coda di VCPU eseguibili. Queste code sono pari alla quantità di processori fisici presenti nel sistema. A ogni dominio può essere assegnata più di una CPU virtuale.

SEDF scheduler

Simple Earliest Deadline First (SEDF) è molto semplice e basa il suo funzionamento su tre variabili, p (period), s(slice) e x(extra time). L’algoritmo prevede che una macchina virtuale deve avere accesso alla CPU per s millisecondi ogni p millisecondi. Il valore x invece è un flag che determina se al dominio è permesso tempo-CPU extra utile per abilitare il work conserving mode. Questi valori sono configurabili dominio per dominio.

SEDF mantiene per ogni VCPU il tempo rimasto prima della scadenza del periodo (deadline), e la somma dei tempi processore che ancora spettano al dominio prima dello scadere del periodo. I processori virtuali sono ordinati in una coda in base alla deadline più vicina. Quando le VCPU vengono schedulate, la loro deadline si sposta avanti nel tempo. Nel caso in cui lo slice di una macchina non permette di realizzare il rapporto p/s delle altre, esso viene ridotto.

SEDF manca del supporto al load balancing su sistemi multiprocessore e valuta le statistiche di utilizzo del processore fisico per VCPU.

Credit scheduler

Credit scheduler è usato dalle più recenti versioni di XEN come scheduler di default. Ogni dominio ha due variabili associate ad esso, un peso (weight) e un limite (cap). Il peso rappresenta la quantità di CPU disponibile per il dominio in ogni unità di tempo, il limite invece ne stabilisce il massimo. Esso è un valore assoluto che descrive la percentuale di CPU di cui può usufruire il dominio. I pesi invece sono gli uni relativi agli altri. Dare a tutte le macchine virtuali un peso uguale, di qualunque valore esso sia, comporta gli stessi effetti su tutti i domini.

Ogni CPU gestisce una lista ordinata di VCPU eseguibili. La priorità è settata su due valori: under e over. Questi valori indicano se le VCPU hanno superato o meno il tempo d’uso che spettava loro del processore fisico nel periodo corrente. Quando viene inserita una VCPU in coda viene posta dopo tutte le altre di uguale priorità.

Ogni volta che una CPU virtuale viene messa in esecuzione, consuma alcuni dei suoi crediti. Se il conto dei crediti consumati è negativo, la priorità della VCPU viene impostata a over.

Quando la somma dei crediti di tutti i domini è negativa, vengono assegnati nuovi crediti a tutti i domini. Ogni volta che la funzione di scheduling do_schedule deve decidere quale VCPU schedulare, preleva semplicemente l’elemento che è in testa alla coda.

Prima di andare in idle un processore fisico verifica che non ci siano VCPU eseguibili. Inoltre quando un processore non trova VCPU che sono under nella sua coda va a cercarla nella coda di altri eventuali processori. Questo comportamento garantisce load balancing su sistemi multiprocessore.

A differenza di SEDF, Credit valuta le statistiche di utilizzo del processore fisico per dominio.

Annunci

Written by Michele Paolino

29/03/2010 a 21:35

2 Risposte

Subscribe to comments with RSS.

  1. Ciao, mi chiamo fabio. Scusa se ti scrivo qui ma non ho trovato nessun contatto. Vorrei segnalarti il nostro aggregatore di notizie informatiche. Forse potrebbe interessarti iscrivere il tuo blog sul nostro portale per portare altri visitatori sul tuo blog. Ti ho lasciato il nostro sito, se vuoi vieni a visitarci, se sei interessato puoi indicarci i feed anche di più categorie da te trattate. Ci sono già un centinaio di blog iscritti! Ciao!

    iWinuxFeed

    30/03/2010 at 09:24

    • ciao Fabio, grazie della segnalazione, mi iscriverò sicuramente!
      😉

      neonum6

      30/03/2010 at 12:14


Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: