2014-06-18 14 views
5

Sto tentando di trovare un modo per dimostrare come i diversi scheduler possono influire sul runtime di un programma. Finora, sto usando solo la funzione time su linux per cercare di vedere le differenze misurabili usando noop, CFS e programmatori di scadenza, ma non sto avendo fortuna. Per i programmi di test, ho appena scritto una serie di programmi C che fondamentalmente eseguono il loop e contano i numeri.Che cosa è un buon programma in C che può dimostrare punti di forza/debolezza di diversi scheduler di Linux (noop, CFS, scadenza)?

Ho pensato che forse se avvii un processo che conta ad un numero più alto, e poi inizio un secondo processo che non conta altrettanto alto; utilizzando lo scheduler di scadenza, il secondo processo potrebbe terminare in modo significativamente più veloce perché è un lavoro che richiede meno risorse. Tuttavia, non vedo alcuna differenza tra gli scheduler. Mi chiedo se forse la mia comprensione degli scheduler sia un po 'imperfetta? Esiste un tipo di programma più appropriato che potrei provare a fare per dimostrare alcuni di questi concetti?

Qualcuno può darmi qualche consiglio, consiglio o qualcosa del genere?

+0

Bella domanda! Non ci sono benchmark disponibili? Non reinventare la ruota e utilizzare uno di questi. Magari cerca dei documenti scientifici sugli scheduler e controlla i benchmark che hanno usato per misurarli. – sestus

+0

Perché non usi 'hackbench' o altri strumenti di benchmarking. O per i programmi personalizzati, [https://github.com/tsuna/contextswitch](https://github.com/tsuna/contextswitch) è un buon punto di partenza. –

risposta

1

Mentre spuntavo sul codice Con Kolivas mi sono imbattuto in Interbench.

Questa applicazione di riferimento è progettata per confrontare l'interattività in Linux . Vedere il file incluso readme.interactivity per una breve definizione .

È stato progettato per misurare l'effetto delle variazioni di progettazione kernel modifiche o configurazione del sistema Linux come cpu,/scheduler O e cambiamenti filesystem e le opzioni. Con un attento benchmarking, è possibile confrontare diversi hardware .

Un altro strumento che potrebbe tornare utile è da Con Kolivas di nuovo e si chiama ConTest.

Questo programma è progettato per testare la risposta del sistema eseguendo compilazione del kernel con una serie di diverse condizioni di carico. È progettato per confrontare diversi kernel, non macchine diverse. Utilizza i carichi di lavoro reali che ci si aspetta di trovare per brevi periodi in tutti i giorni macchine ma li sostiene per tutta la durata di una compilazione del kernel su aumenta il rapporto segnale/rumore.

quindi forse si potrebbe usare questo preparando due kernel con diversi scheduler.