Linux I/O Scheduling overview



Похожие документы
Lo schedulatore del kernel

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID

Sistemi Operativi SCHEDULING DELLA CPU

Scheduling. Lo scheduler è la parte del SO che si occupa di

Processi e Thread. Scheduling (Schedulazione)

Corso di Informatica

Sistemi Operativi Kernel

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU:

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

SCHEDULING DEI PROCESSI

SISTEMI OPERATIVI. Gestione dei dischi. Gestione dei dischi e sistemi RAID

SCHEDULATORI DI PROCESSO

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.

Lo scheduling. Tipici schedulatori

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Lo scheduler di UNIX (1)

Corso di Sistemi di Elaborazione delle informazioni

Laboratorio di Informatica

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

Il Sistema Operativo

Scheduling della CPU

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Approccio stratificato

Architettura dei calcolatori II parte Memorie

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Memoria secondaria. Sistemi Operativi mod. B 14.1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Organizzazione Monolitica

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Architettura di un sistema di calcolo

Nastro magnetico. Gestione della memoria di massa. Disco magnetico. Disco magnetico. Usato in passato come dispositivo di memorizzazione secondaria

Processo - generalità

Algoritmi di scheduling

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Calcolatori Elettronici

Gestione dei buffer e I/O scheduling: 1. Richiami sulle tecniche di I/O 2. Gestione dei buffer 3. Schedulazione del disco 4. I/O in UNIX e Windows

Gestione della Memoria

Architettura di un calcolatore

Il Software. Il software del PC. Il BIOS

DMA Accesso Diretto alla Memoria

Appunti di informatica. Lezione 6 anno accademico Mario Verdicchio

Sistemi Operativi A Parte VI - La memoria secondaria. Dischi magnetici. Nastri magnetici

La Gestione delle risorse Renato Agati

Dispensa di Informatica I.1

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

J. Assfalg Appunti di Sistemi Operativi

Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT)

FONDAMENTI di INFORMATICA L. Mezzalira

Sistemi Operativi (modulo di Informatica II) I processi

I processi Unix. Entry della tabella dei processi

Organizzazione della memoria

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore

Scheduling della CPU Simulazione in linguaggio Java

1. I dispositivi periferici

Esercitazione E1 Scheduling, deadlock, monitor

Implementazione di sistemi real time

12. Implementazione di un File System Struttura a livelli Allocazione contigua

01/05/2014. Dalla precedente lezione. Ruolo dei sistemi operativi. Esecuzione dei programmi

Esercitazione E6 Esercizi d esame

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

STRUTTURE DEI SISTEMI DI CALCOLO

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

Il Sistema Operativo (1)

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Ambienti di calcolo a griglia Parte 2. Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job

Introduzione ai Sistemi Operativi

Scheduling. Dipartimento di Informatica Università di Verona, Italy. Sommario

Introduzione alla Virtualizzazione

Architettura di un sistema operativo

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Corso Sistemi Informativi Aziendali, Tecnologie dell Informazione applicate ai processi aziendali. Sistemi informativi aziendali

Транскрипт:

Linux I/O Scheduling overview Roberto Vela 09/11/2013 www.nalug.net

Roadmap Perché lo scheduling? Perché lo scheduling dell'i/o è importante? Principi dello scheduling I/O Scheduling del disco Disk scheduling su Linux Cambiare l'algoritmo di scheduling Cenni => una descrizione accurata dell'argomento richiederebbe diverse ore

Perché lo scheduling? To schedule = programmare (come un appuntamento) Spesso le risorse non sono sufficienti per soddisfare tutte le richieste Il Sistema Operativo ha il ruolo di assegnare le risorse ai processi che le richiedono

Perché lo scheduling I/O è importante? I tempi di accesso alle periferiche di I/O tipicamente sono di ordini di grandezza più grandi di quelli della CPU o di accesso alla memoria centrale Collo di bottiglia per le performance dell'intero sistema

Tipi di periferiche di I/O A blocchi E' possibile trasferire solo insiemi di dati di una precisa dimensione. A caratteri Vengono trasferiti flussi continui di dati.

Tecniche di gestione dell'i/o I/O Programmato I/O ad Interrupt Direct Memory Access (DMA)

Principi della gestione dell'i/o Efficienza: l'i/o non deve pesare sulle prestazioni del sistema Imparzialità Generalità

Scheduling del disco Fra le periferiche di I/O, la memoria secondaria è cruciale per le prestazioni: Maggioranza dei dati salvata su disco Swapping pagine di memoria File di spool periferiche virtuali

Struttura di un disco rigido Un blocco = N settori

Scheduling del disco Cosa ci interessa? Equità Throughput (richieste / unità di tempo) Latenza Parametri prestazionali Tempo di seek Ritardo rotazionale Tempo di trasferimento dati

FCFS First Come First Served FIFO : le richieste sono servite nell'ordine di arrivo Throughput basso, seek time può essere elevato Usura della testina In base a questo problema potrei usare una tecnica LIFO, però se arrivano troppe richieste potrei avere starvation (ovvero attesa indefinita) di quelle precedenti!

SCAN Algoritmo dell'ascensore Servo tutte le richieste lungo la direzione corrente Arrivato alla fine inverto la direzione della testina Pro: throughput decente Svantaggi Starvation richieste su settori già letti se arrivano molte nuove richieste nella direzione corrente Tempo di attesa dipendente dalla traccia Non sfrutta la località delle richieste Molte varianti

Scheduling del disco in Linux Applicazione dei principi visti in precedenza Differenze nelle successive versioni del kernel Documentazione file di tuning dispositivi a blocchi: /Documentation/block/queue-sysfs.txt

Linus Elevator Usato fino alla versione 2.4 Sì, ha davvero creato uno scheduler con il suo nome Analogo a SCAN Richieste inserite in una coda Merging: richieste di settori vicini uniti in una sola (front merging e back merging) Sorting: richieste ordinate in maniera crescente il base al relativo settore Buon throughput globale

Linus Elevator Poca equità: molte richieste vicine portano a starvation (esempio: scrittura di un file) Soluzione tampone: se ci sono richieste in attesa da più di un certo tempo, una nuova verrà posta in fondo alla coda non esaustiva, potrei comunque avere tempi di attesa lunghi Letture sincrone al processo, scritture asincrone =>Writes-starving-reads

Deadline (kernel 2.6) Una coda con merge e sort come in Linus elevator Due code FIFO (una per scritture ed una per letture) Ogni richiesta viene messa nella coda ordinata ed in una delle due Se gli elementi in testa delle code FIFO sono in attesa per più di un certo tempo, vengono prelevati Tempi diversi per coda scritture e letture (di un ordine di grandezza circa) risolvo writes starving reads! Dettagli in /Documentation/block/deadline-iosched.txt

Anticipatory (fino al kernel 2.6.33) Deadline può portare ad un basso throughput: i tempi di seek possono essere elevati se le richieste sono lontane! Soluzione: uso di euristiche per determinare se ci saranno nuove richieste nella stessa area del disco ed eventuale attesa senza muovere la testina (es. lettura di più dati contigui in seguito ad elaborazioni del processo)

CFQ Completely Fair Queueing Sostituisce Anticipatory dal kernel 2.6.33 Più generale, può comportarsi come anticipatory Complesso, richiede una quantità discreta di risorse Mantiene una coda di richieste di I/O sincrone per ogni processo (<=64) Unisce in code le richieste asincrone in base alla priorità dei rispettivi processi Ad ogni ciclo, serve un numero quantum di richieste di ogni coda, in successione.

CFQ Completely Fair Queueing Le richieste vengono messe in una nuova coda, sulla quale si fanno il merge ed il sort per minimizzare i tempi di seek Il tempo di accesso fornito ad ogni processo dipende dalla sua priorità. Tunabile con ionice Dettagli in /Documentation/block/cfq-iosched.txt Diversi parametri (/sys/block/sda/queue/iosched)

No-op Strategia FIFO Semplice, riduce l'overhead del sistema operativo: il minor numero di istruzioni CPU per effettuare merging e sorting A meno di ottimizzazioni ad altri livelli (es. controller sofisticati) fornisce un basso throughput per carico elevato

Come scelgo l'i/o scheduler? Host di VM, grossi sistemi enterprise: CFQ/DEADLINE Piccoli sistemi/dischi lenti: CFQ->NOOP Macchine virtuali: CFQ->NOOP/DEADLINE SSD: non ho dischi! CFQ->NOOP In generale, CFQ offre buone prestazioni in svariati scenari Non esiste un'unica scelta ottimale!

Qual è il mio I/O scheduler? Dettagli nella relativa documentazione del kernel: /linux-stable/documentation/block/switching-sched.txt

Modificare l'i/o scheduler Per uno specifico dispositivo: Nel bootloader: Compilando il kernel: Sudo make menuconfig Enable the block layer IO Schedulers Default I/O Scheduler (<default>)

Domande?

Grazie per l'attenzione!

Riferimenti The Linux Kernel sourcel Documentation http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/documentation/block? id=head Choosing an I/O Scheduler for Red Hat Enterprise Linux 4 and the 2.6 Kernel http://www.redhat.com/magazine/008jun05/features/schedulers/ IBM Linux Documentation: Best practices for block I/O performance http://pic.dhe.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=%2fliaat%2fliaatb pblockioperf.htm Domenico Cotroneo, Marcello Cinque: Dispensa didattica su I/O e gestione dei dischi - http://www.docenti.unina.it