Capitolo 43. OProfile

OProfile è un tool di controllo della prestazione dell'intero sistema, ed è caratterizzato da un overhead basso. Il suddetto tool usa un hardware di controllo della prestazione sul processore, per riprendere le informazioni sul kernel e degli eseguibili presenti sul sistema, come ad esempio quando ci si riferisce alla memoria, al numero delle richieste della cache L2, e al numero delle interruzioni hardware ricevuto. Per poter usare questo tool su di un sistema Red Hat Enterprise Linux, il pacchetto RPM oprofile deve essere installato.

Molti processori includono un apposito hardware di controllo della prestazione. Questo hardware è in grado di rilevare la presenza di alcuni eventi (come ad esempio l'assenza in una cache, di dati richiesti). L'hardware normalmente viene rappresentato da uno o più contatori, che vengono incrementati ogni qualvolta si verifica un evento. Quando il valore del contatore "varia," viene generata una interruzione, rendendo possibile un controllo della quantità dei dettagli (e quindi dell'overhead) forniti grazie al controllo della prestazione.

OProfile usa questo hardware (oppure un sostituto basato sul timer, in casi dove non è presente un hardware di controllo della prestazione) per raccogliere degli esempi di dati relativi alla prestazione, ogni volta che un contatore genera una interruzione. Questi esempi sono registrati periodicamente su di un disco; più in avanti i dati contenuti in questi esempi, possono essere usati per generare dei riporti sulla prestazione a livello del sistema e delle applicazioni.

ImportanteImportante
 

Il supporto del kernel per OProfile in Red Hat Enterprise Linux 3, è basato su di un codice di tipo back-ported del kernel di sviluppo 2.5. Quando si indica la documentazione di OProfile, vengono applicate a OProfile in Red Hat Enterprise Linux 3 i contenuti-2.5, anche se la versione del kernel è 2.4. I contenuti specifici del kernel 2.4 non vengono applicati a Red Hat Enterprise Linux 3.

OProfile è un tool utile ma fate attenzione alle sue limitazioni quando lo usate:

In Red Hat Enterprise Linux è abilitato il supporto OProfile solo per i kernel di processori multipli (SMP). Per determinare quale kernel è in esecuzione, emettere il seguente comando:

uname -r

Se la versione del kernel ritornata finisce in .entsmp, ciò significa che il kernel dei processori multipli è in esecuzione. Altrimenti installatelo tramite Red Hat Network o tramite i CD di distribuzione, anche se il sistema non è un sistema con processori multipli. Il kernel dei processori multipli può essere eseguito su di un sistema con un singolo processore.

43.1. Panoramica dei tool

Tabella 43-1 fornisce una breve panoramica dei tool forniti con il pacchetto oprofile.

ComandoDescrizione
opcontrol

Configura i dati da raccogliere. Consultare la Sezione 43.2 per maggiori informazioni.

op_help

Mostra gli eventi disponibili per il processore del sistema insieme con una loro breve descrizione.

op_merge

Unisce esempi multipli dello stesso eseguibile. Consultare la Sezione 43.5.4 per maggiori informazioni.

op_timeFornisce una panoramica di tutti i profili presenti. Consultare la Sezione 43.5.1 per maggiori informazioni.
op_to_sourceGenera la fonte annotata per un eseguibile se l'applicazione è stata compilata con i simboli del debugging. Consultate la Sezione 43.5.3 per maggiori informazioni.
oprofiled

Viene eseguito come un demone per registrare periodicamente su disco dei dati d'esempio.

oprofpp

Riprende i dati del profilo. Consultate la Sezione 43.5.2 per maggiori informazioni.

op_import

Converte l'esempio dei file del database da un formato binario diverso in un formato nativo per il sistema. Usare questa opzione solo quando si analizza un esempio del database da un'architettura diversa.

Tabella 43-1. I comandi di OProfile