| Red Hat Enterprise Linux 4: Introduzione al System Administration | ||
|---|---|---|
| Indietro | Capitolo 2. Controllo delle risorse | Avanti |
Red Hat Enterprise Linux presenta diversi tool per il controllo delle risorse. Anche se i suddetti tool sono più numerosi di quelli qui riportati, essi sono i più rappresentativi in termini di funzionalità. I tool sono:
free
top (e GNOME System Monitor, una versione più grafica di top)
vmstat
La suite di Sysstat per i tool di controllo delle risorse
Il profiler generale del sistema di OProfile
Esaminiamoli in dettaglio.
Il comando free mostra l'utilizzo della memoria del sistema. Ecco un esempio del suo output:
total used free shared buffers cached Mem: 255508 240268 15240 0 7592 86188 -/+ buffers/cache: 146488 109020 Swap: 530136 26268 503868 |
La riga Mem: mostra l'utilizzo della memoria fisica, mentre Swap: mostra l'utilizzo dello spazio swap del sistema, e -/+ buffers/cache: mostra la quantità di memoria fisica riservata ai buffer del sistema.
Poichè free per default mostra le informazioni sull'utilizzo della memoria solo una volta, esso è utile solo per un controllo breve, oppure per determinare velocemente se esiste ancora il problema relativo alla memoria stessa. Anche se free possiede l'abilità di visualizzare ripetutamente le informazioni relative all'uso della memoria tramite la sua opzione -s, l'output continua a scorrere rendendo difficile il rilevamento di modifiche nell'utilizzo della stessa memoria.
![]() | Suggerimento | ||
|---|---|---|---|
Una soluzione migliore nell'uso di free -s sarebbe quella di eseguire free usando il comando watch. Per esempio, per visualizzare l'utilizzo della memoria ogni due secondi (il valore di default per watch), usare questo comando:
Il comando watch emette il comando free ogni due secondi, eseguendo l'aggiornamento, ripulendo la schermata e scrivendo il nuovo output nella stessa posizione. Questo rende il tutto molto più semplice nel determinare i cambiamenti sull'utilizzo della memoria attraverso un certo periodo di tempo, in quanto watch crea una panoramica singola sull'aggiornamento senza poter eseguire uno scorrimento dei dati. È possibile controllare il ritardo tra gli aggiornamenti usando l'opzione -n, mentre è possibile evidenziare i cambiamenti utilizzando l'opzione -d come mostrato nel seguente comando:
Per maggiori informazioni, consultate la pagina man di watch. Il comando watch viene eseguito fino a quando non viene interrotto con |
Mentre free visualizza solo le informazioni relative alla memoria, il comando top fà un pò di tutto. Uso della CPU, statistiche sul processo, utilizzo della memoria — top controlla più o meno tutto. Diversamente dal comando free, il comportamento di default di top è quello di esecuzione continua; non vi è il bisogno di usare il comando watch. Eccone un esempio:
14:06:32 up 4 days, 21:20, 4 users, load average: 0.00, 0.00, 0.00
77 processes: 76 sleeping, 1 running, 0 zombie, 0 stopped
CPU states: cpu user nice system irq softirq iowait idle
total 19.6% 0.0% 0.0% 0.0% 0.0% 0.0% 180.2%
cpu00 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 100.0%
cpu01 19.6% 0.0% 0.0% 0.0% 0.0% 0.0% 80.3%
Mem: 1028548k av, 716604k used, 311944k free, 0k shrd, 131056k buff
324996k actv, 108692k in_d, 13988k in_c
Swap: 1020116k av, 5276k used, 1014840k free 382228k cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
17578 root 15 0 13456 13M 9020 S 18.5 1.3 26:35 1 rhn-applet-gu
19154 root 20 0 1176 1176 892 R 0.9 0.1 0:00 1 top
1 root 15 0 168 160 108 S 0.0 0.0 0:09 0 init
2 root RT 0 0 0 0 SW 0.0 0.0 0:00 0 migration/0
3 root RT 0 0 0 0 SW 0.0 0.0 0:00 1 migration/1
4 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 keventd
5 root 34 19 0 0 0 SWN 0.0 0.0 0:00 0 ksoftirqd/0
6 root 35 19 0 0 0 SWN 0.0 0.0 0:00 1 ksoftirqd/1
9 root 15 0 0 0 0 SW 0.0 0.0 0:07 1 bdflush
7 root 15 0 0 0 0 SW 0.0 0.0 1:19 0 kswapd
8 root 15 0 0 0 0 SW 0.0 0.0 0:14 1 kscand
10 root 15 0 0 0 0 SW 0.0 0.0 0:03 1 kupdated
11 root 25 0 0 0 0 SW 0.0 0.0 0:00 0 mdrecoveryd |
La schermata viene divisa in due sezioni. Quella superiore contiene le informazioni relative allo stato generale del sistema — l'uptime, il carico medio, i conteggi del processo, lo stato della CPU, e le statistiche sull'utilizzo sia per la memoria che per lo spazio di swap. La sezione inferiore visualizza le statistiche process-level. È possibile cambiare ciò che viene mostrato mentre top è in esecuzione. Per esempio, top per default visualizza solo i processi idle e non-idle. Per visualizzare i processi non-idle, pigiare
![]() | Avvertimento |
|---|---|
Anche se top appare come un programma di sola visualizzazione, in realtà non lo è. Questo perchè top utilizza dei comandi a caratteri singoli per eseguire diverse operazioni. Per esempio, se siete registrati come root è possibile modificare la priorità oppure eseguire il kill di qualsiasi processo presente nel sistema. Per questo motivo, fino a quando non avete revisionato la schermata d'aiuto di top (digitate |
Se vi sentite più a vostro agio con le graphical user interface, GNOME System Monitor potrebbe fare al caso vostro. Come top, GNOME System Monitor visualizza le informazioni relative allo stato generale del sistema, ai conteggi del processo, all'utilizzo dello spazio di swap e della memoria e alle statistiche del livello del processo.
Tuttavia, GNOME System Monitor si spinge leggermente oltre, includendo anche alcune rappresentazioni grafiche della CPU, della memoria, e sull'utilizzo dello swap, insieme alla voce sull'utilizzo dello spazio tabellare del disco. Un esempio della scheramata Process Listing di GNOME System Monitor appare in Figura 2-1.
Si possono visualizzare informazioni aggiuntive per un processo specifico facendo clic sul processo desiderato e poi sul tasto More Info.
Per visualizzare la CPU, la memoria e le statistiche sull'utilizzo del disco, fate clic sul pannello Monitor del sistema.
Per una conoscenza più approfondita sulle prestazioni del sistema, provate vmstat. Con vmstat è possibile ottenere una panoramica del processo, della memoria, di swap, I/O, del sistema, e sull'attività della CPU attraverso una riga composta da numeri:
procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 5276 315000 130744 380184 1 1 2 24 14 50 1 1 47 0
|
La prima riga divide i campi in sei categorie, include il processo, la memoria, swap, I/O, il sistema e le statistiche relative alla CPU. La seconda riga identifica maggiormente i contenuti di ogni campo, facilitando un controllo rapido dei dati per specifiche statistiche.
I campi relativi al processo sono:
r — Il numero di processi eseguibili in attesa per l'accesso alla CPU
b — Il numero di processi che sono in uno stato di 'sleep'
I campi relativi alla memoria sono:
swpd — La quantità utilizzata di memoria virtuale
free — La quantità di memoria disponibile
buff — La quantità di memoria usata dai buffer
cache — La quantità di memoria utilizzata come page cache
I campi relativi allo swap sono:
si — La quantità di memoria scambiata in entrata da un disco
so — La quantità di memoria scambiata in uscita dal disco
I campi relativi a I/O sono:
bi — Blocchi inviati ad un dispositivo a blocco
bo— Blocchi ricevuti da un dispositivo a blocco
I campi relativi al sistema sono:
in — Il numero di interruzioni al secondo
cs — Il numero di modifiche del contesto al secondo
I campi relativi alla CPU sono:
us — La percentuale di tempo attraverso il quale la CPU ha eseguito il codice user-level
sy — La percentuale di tempo attraverso il quale la CPU ha eseguito il codice system-level
id — La percentuale di tempo nel quale la CPU è rimasta in posizione di idle
wa — attesa I/O
Quando si esegue vmstat senza opzioni viene visualizzata solo una riga. Questa riga contiene informazioni calcolate dall'ultimo avvio del sistema.
Tuttavia molti amministratori di sistema non fanno affidamento ai dati contenuti in questa riga, in quanto i dati vengono raccolti in momenti diversi. Molti amministratori invece usano l'abilità di vmstat di visualizzare ripatutamente i dati sull'utilizzo delle risorse a determinati intervalli. Per esempio, il comando vmstat 1 visualizza una nuova riga ogni secondo, mentre il comando vmstat 1 10 visualizza una nuova riga al secondo per dieci secondi.
Se usato da un amministratore esperto, vmstat può essere utilizzato per determinare velocemente l'uso delle risorse e le problematiche inerenti le prestazioni. Ma per poter ottenere dettagli più specifici su questi argomenti, è necessario un tool diverso — un tool capace di raccogliere dati in modo più approfondito e di condurre analisi.
Mentre i tool precedenti possono essere utili per ottenere informazioni più dettagliate sulle prestazioni del sistema in tempi molto brevi, gli stessi sono poco utili nel fornire un quadro corretto sull'utilizzo delle risorse del sistema. In aggiunta, ci sono alcuni aspetti inerenti le prestazioni del sistema che non possono essere controllati usando i suddetti tool.
Per questo motivo è necessario un tool più sofisticato. Sysstat rappresenta tale tool.
Sysstat contiene i seguenti tool relativi alla raccolta di I/O e delle statistiche della CPU:
Visualizza una panoramica sull'utilizzo della CPU, insieme alle statistiche I/O per una o più unità disco.
Visualizza le statistiche della CPU in modo più dettagliato.
Sysstat contiene anche i tool in grado di raccogliere i dati riguardanti l'uso delle risorse del sistema, e creare dei riporti giornalieri basati sui dati stessi. Questi tool sono:
Conosciuto come raccoglitore di dati sull'attività del sistema, sadc raccoglie le informazioni sull'utilizzo delle risorse del sistema e le scrive su di un file.
Eseguendo dei rapporti dai file creati da sadc, i rapporti di sar possono essere generati in modo interattivo o scritti su di un file per analisi più approfondite.
Le seguenti sezioni analizzano i tool in modo più approfondito.
Il comando iostat fornisce una panoramica della CPU e delle statistiche I/O su disco:
Linux 2.4.20-1.1931.2.231.2.10.ent (pigdog.example.com) 07/11/2003
avg-cpu: %user %nice %sys %idle
6.11 2.56 2.15 89.18
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
dev3-0 1.68 15.69 22.42 31175836 44543290
|
Sotto la prima riga (la quale contiene la versione del kernel del sistema e l'hostname, insieme con la data corrente), iostat visualizza una panoramica sull'utilizzo medio della CPU del sistema dall'ultimo riavvio. Il rapporto sull'uso della CPU include quanto segue:
La percentuale di tempo trascorso in modalità utente (esecuzioni delle applicazioni, ecc)
Percentuale di tempo trascorso in modalità utente (per processi che hanno modificato la loro priorità usando nice(2))
Percentuale di tempo trascorso in modalità kernel
Percentuale di tempo trascorso in idle
Sotto il rapporto sull'utilizzo della CPU, si trova il rapporto sull'utilizzo del dispositivo. Il suddetto rapporto contiene una riga per ogni dispositivo del disco attivo sul sistema, e include le seguenti informazioni:
La specificazione del dispositivo, visualizzato come dev<major-number>-sequence-number, dove <major-number> è il numero maggiore del dispositivo[1], e <sequence-number> è una sequenza numerica che parte da zero.
Il numero di trasferimenti (o di operazioni I/O) al secondo.
Il numero di blocchi da 512-byte letti al secondo.
Il numero di blocchi da 512-byte scritti al secondo.
Il numero totale di blocchi da 512-byte letti.
Il numero totale di blocchi da 512-byte scritti.
Questo è solo un esempio delle informazioni che si possono ottenere usando iostat. Per maggiori informazioni consultare la pagina man di iostat (1).
Il comando mpstat potrebbe apparire simile al rapporto sull'utilizzo della CPU prodotto da iostat:
Linux 2.4.20-1.1931.2.231.2.10.ent (pigdog.example.com) 07/11/2003
07:09:26 PM CPU %user %nice %system %idle intr/s
07:09:26 PM all 6.40 5.84 3.29 84.47 542.47
|
Con l'eccezione di una colonna aggiuntiva che mostra le interruzioni al secondo gestite dalla CPU. Tuattavia, la situazione cambia se viene utilizzata l'opzione -P ALL di mpstat:
Linux 2.4.20-1.1931.2.231.2.10.ent (pigdog.example.com) 07/11/2003
07:13:03 PM CPU %user %nice %system %idle intr/s
07:13:03 PM all 6.40 5.84 3.29 84.47 542.47
07:13:03 PM 0 6.36 5.80 3.29 84.54 542.47
07:13:03 PM 1 6.43 5.87 3.29 84.40 542.47
|
Su sistemi multiprocessori, mpstat presenta la possibilità per ogni CPU di essere visualizzata individualmente, permettendo di sapere come è stata usata ogni CPU.
Come precedentemente osservato, il comando sadc raccoglie i dati che riguardano l'uso del sistema, e li scrive su di un file per ulteriori analisi. Per default, i dati vengono scritti sui file nella directory /var/log/sa/. I file vengono chiamati sa<dd>, dove <dd> è la data corrente espressa con due caratteri.
sadc viene eseguito normalmente dallo script sa1. Questo script viene invocato generalmente da cron tramite il file sysstat, che si trova in /etc/cron.d/. Lo script sa1 richiama sadc per un intervallo singolo di un secondo. Per default, cron esegue sa1 ogni 10 minuti, aggiungendo i dati raccolti durante ogni intervallo al file /var/log/sa/sa<dd> corrente.
Il comando sar fornisce i rapporti sull'utilizzo del sistema in base ai dati raccolti da sadc. Come configurato in Red Hat Enterprise Linux, sar viene eseguito automaticamente per processare i file raccolti automaticamente da sadc. I file report sono scritti su /var/log/sa/ e sono chiamati sar<dd>, dove <dd> e la rappresentazione a due caratteri della data precedente sempre a due caratteri.
sar viene eseguito normalmente dallo script sa2. Questo script viene invocato periodicamente da cron tramite il file sysstat, il quale si trova in /etc/cron.d/. Per default, cron esegue sa2 una volta al giorno alle 23:53, permettendogli di fornire un report per tutti i dati giornalieri.
Il formato di un rapporto sar fornito dalla configurazione di default di Red Hat Enterprise Linux, consiste in sezioni multiple, con ogni sezione contenente un tipo specifico di dati. Poichè sadc è configurato per eseguire un intervallo di un secondo ogni dieci minuti, i report sar di default contengono dati che incrementano ogni dieci minuti, da 00:00 a 23:50 [2].
Ogni sezione del rapporto inizia con una testata che descrive i dati contenuti nella sezione stessa. La testata viene ripetuta ad intervalli regolari attraverso la sezione, rendendola più semplice per l'interpretazione dei dati mentre si esegue un 'paging' attraverso il rapporto. Ogni sezione termina con una riga contenente informazioni generali sui dati riportati in quella sezione.
Ecco un esempio di un rapporto della sezione sar, con i dati da 00:30 a 23:40 rimossi per ottenere spazio:
00:00:01 CPU %user %nice %system %idle
00:10:00 all 6.39 1.96 0.66 90.98
00:20:01 all 1.61 3.16 1.09 94.14
…
23:50:01 all 44.07 0.02 0.77 55.14
Average: all 5.80 4.99 2.87 86.34
|
In questa sezione vengono mostrate le informazioni sull'utilizzo della CPU. Questo è molto simile ai dati visualizzati da iostat.
Altre sezioni possono avere più di una riga per volta contenente dati, come mostrato in questa sezione generata da dati sull'utilizzo della CPU raccolti su di un sistema 'dual-processor':
00:00:01 CPU %user %nice %system %idle
00:10:00 0 4.19 1.75 0.70 93.37
00:10:00 1 8.59 2.18 0.63 88.60
00:20:01 0 1.87 3.21 1.14 93.78
00:20:01 1 1.35 3.12 1.04 94.49
…
23:50:01 0 42.84 0.03 0.80 56.33
23:50:01 1 45.29 0.01 0.74 53.95
Average: 0 6.00 5.01 2.74 86.25
Average: 1 5.61 4.97 2.99 86.43
|
Ci sono un totale di diciasette sezioni presenti nei rapporti generati dalla configurazione sar di default di Red Hat Enterprise Linux; alcuni di essi vengono affrontati nei capitoli successivi. Per maggiori informazioni sui dati contenuti in ogni sezione, consultate la pagina man di sar(1).
Il profiler generale del sistema di OProfile è un tool di controllo a basso overhead. OProfile fà uso di hardware di controllo delle prestazioni del sistema[3] per determinare la natura dei problemi relativi alle prestazioni.
L'hardware di controllo delle prestazioni fà parte dello stesso processo. Prende la forma di un contatore speciale, incrementato ognivolta che si verifica un certo evento (come ad esempio se un processo non è in posizione idle oppure i dati richiesti non sono presenti nella cache). Alcuni processori presentano più di un contatore, e permettono di eseguire una selezione di diversi eventi per ogni contatore.
I contatori possono essere caricati con un valore iniziale e produrre una interruzione ognivolta che lo stesso contatore presenta un overflow. Caricando un contatore con diversi valori iniziali, è possibile variare la velocità alla quale vengono prodotte le interruzioni. In questo modo è possibile controllare la velocità campione, e così, il livello dei dettagli ottenuti dai dati raccolti.
Da un lato, impostando il contatore in modo da generare un overflow interrupt con ogni evento, si possono fornire dati sulla prestazione molto dettagliati (ma con un overhead elevatissimo). Al contrario impostare il contatore in modo da generare il minor numero di interruzioni possibile, si fornisce una panoramica generale delle prestazioni del sistema (con nessun overhead). Il segreto di un controllo efficace viene rappresentato dalla selezione di una velocità campione sufficientemente alta in modo da catturare i dati necessari, ma non così alta da far verificare un sovraccarico del sistema con un overhead del controllo delle prestazioni.
![]() | Avvertimento |
|---|---|
Potete configurare OProfile in modo da produrre un overhead sufficiente per rendere il sistema non più utilizzabile. In questo senso è necessario esercitare molta attenzione nella selezione dei valori del contatore. Per questa ragione, il comando opcontrol supporta l'opzione --list-events, la quale visualizza il tipo di evento disponibile per il processore attualmente installato, insieme con i valori del contatore minimi suggeriti. |
È importante tener sempre presente il rapporto tra la velocità campione e l'overhead quando si utilizza OProfile.
Oprofile consiste dei seguenti componenti:
Software di raccolta dati
Software di analisi dei dati
Software per l'interfaccia amministrativa
Il software per la raccolta dati consiste del modulo del kernel di oprofile.o, e del demone oprofiled.
Il software per l'analisi dei dati include i seguenti programmi:
Visualizza il numero e le relative percentuali di esempi presi per ogni file eseguibile
Visualizza il numero e le relative percentuali di esempi presi per la funzione, per le istruzioni individuali, o per output in stile gprof
Visualizza i codici sorgente annotati e/o dell'assembly listings
Visualizza graficamente i dati raccolti
Questi programmi rendono possibile visualizzare i dati raccolti in diversi modi.
Il software per l'interfaccia amministrativa controlla tutti gli aspetti di raccolta dei dati, dalla specificazione dell'evento da controllare, all'avvio e arresto della raccolta dei dati stessi. Tutto questo viene fatto usando il comando opcontrol.
Questa sezione mostra un controllo OProfile e una sessione per l'analisi dei dati da una configurazione iniziale ad un'analisi finale dei dati. Essa rappresenta solo una panoramica introduttiva, per maggiori informazioni consultare Red Hat Enterprise Linux System Administration Guide.
Utilizzate opcontrol per configurare il tipo di dati da raccogliere con il seguente comando:
opcontrol \
--vmlinux=/boot/vmlinux-`uname -r` \
--ctr0-event=CPU_CLK_UNHALTED \
--ctr0-count=6000 |
Le opzioni qui usate dirigono opcontrol su:
Dirigono OProfile su di una copia del kernel corrente in esecuzione (--vmlinux=/boot/vmlinux-`uname -r`)
Specificano l'utilizzo del contatore 0 del processore e che l'evento da controllare è il periodo quando la CPU esegue le istruzioni (--ctr0-event=CPU_CLK_UNHALTED)
Specificano che OProfile deve raccogliere gli esempi ogni 6000 volte che si verifica l'evento specificato (--ctr0-count=6000)
Successivamente, controllate che il modulo del kernel di oprofile venga caricato usando il comando lsmod:
Module Size Used by Not tainted oprofile 75616 1 … |
Confermate che il file system di OProfile (posizionato in /dev/oprofile/) attraverso il comando ls /dev/oprofile/:
0 buffer buffer_watershed cpu_type enable stats 1 buffer_size cpu_buffer_size dump kernel_only |
(Il numero esatto di file varia a seconda del tipo del processo.)
A questo punto, il file /root/.oprofile/daemonrc contiene le impostazioni necessarie dal software di raccolta dei dati:
CTR_EVENT[0]=CPU_CLK_UNHALTED CTR_COUNT[0]=6000 CTR_KERNEL[0]=1 CTR_USER[0]=1 CTR_UM[0]=0 CTR_EVENT_VAL[0]=121 CTR_EVENT[1]= CTR_COUNT[1]= CTR_KERNEL[1]=1 CTR_USER[1]=1 CTR_UM[1]=0 CTR_EVENT_VAL[1]= one_enabled=1 SEPARATE_LIB_SAMPLES=0 SEPARATE_KERNEL_SAMPLES=0 VMLINUX=/boot/vmlinux-2.4.21-1.1931.2.349.2.2.entsmp |
Successivamente, utilizzare opcontrol per iniziare la raccolta dei dati con il comando opcontrol --start:
Using log file /var/lib/oprofile/oprofiled.log Daemon started. Profiler running. |
Verificate che il demone oprofiled viene eseguito con il comando ps x | grep -i oprofiled:
32019 ? S 0:00 /usr/bin/oprofiled --separate-lib-samples=0 … 32021 pts/0 S 0:00 grep -i oprofiled |
(La linea di comando di oprofiled visualizzata da ps è più lunga; tuttavia, essa è stata troncata per motivi di formattazione.)
Il sistema viene adesso monitorato, con i dati raccolti per tutti gli eseguibili presenti sul sistema. I dati vengono conservati nella directory /var/lib/oprofile/samples/. I file in questa directory seguono una convenzione di nomi molto inusuale. Ecco un esempio:
}usr}bin}less#0 |
Questa convenzione utilizza il percorso assoluto di ogni file contenente il codice degli eseguibili, con la barra (/) sostituita dalle parentesi graffe (}), e finendo con il simbolo cancelletto (#) seguito da un numero (in questo caso, 0.) Per questo motivo, il file usato in questo esempio rappresenta i dati raccolti mentre /usr/bin/less era in esecuzione.
Una volta raccolti i dati utilizzare uno dei tool di analisi per visualizzarli. Un lato positivo di OProfile è rappresentato dal fatto che non è necessario arrestare la raccolta dei dati prima di eseguire un'analisi. Tuttavia, è necessario aspettare la scrittura sul disco di un set di esempi, o usare il comando opcontrol --dump per forzare tale procedura.
Nel seguente esempio, op_time viene usato per visualizzare (con un ordine inverso — da un numero maggiore di esempi a quello più basso), gli esempi raccolti:
3321080 48.8021 0.0000 /boot/vmlinux-2.4.21-1.1931.2.349.2.2.entsmp 761776 11.1940 0.0000 /usr/bin/oprofiled 368933 5.4213 0.0000 /lib/tls/libc-2.3.2.so 293570 4.3139 0.0000 /usr/lib/libgobject-2.0.so.0.200.2 205231 3.0158 0.0000 /usr/lib/libgdk-x11-2.0.so.0.200.2 167575 2.4625 0.0000 /usr/lib/libglib-2.0.so.0.200.2 123095 1.8088 0.0000 /lib/libcrypto.so.0.9.7a 105677 1.5529 0.0000 /usr/X11R6/bin/XFree86 … |
È buona idea quando si produce un rapporto in modo interattivo, usare less, in quanto i suddetti rapporti possono essere lunghi centinaia di righe. L'esempio riportato è stato troncato per questa ragione.
Il formato per questo rapporto in particolare è quello di una riga prodotta per ogni file eseguibile dai quali sono stati presi come esempio. Ogni riga segue questo formato:
<sample-count> <sample-percent> <unused-field> <executable-name> |
Dove:
<sample-count> rappresenta il numero di esempio raccolti
<sample-percent> rappresenta la percentuale di tutti gli esempi raccolti per questo specifico eseguibile
<unused-field> è un campo non in uso
<executable-name> rappresenta il nome del file che contiene il codice dell'eseguibile per il quale sono stati raccolti gli esempi.
Questo rapporto (fornito sulla maggior parte dei sistemi in idle) mostra che quasi la metà di tutti gli esempi sono stati presi in considerazione mentre la CPU esegue il codice all'interno dello stesso kernel. Successivamente nella riga vi è il demone per la raccolta dei dati di OProfile, seguito da diverse librerie e dal server del sistema X Window, XFree86. Vale la pena notare che per il sistema che esegue questa sessione, il valore di 6000 usato dal contatore, rappresenta il valore minimo consigliato da opcontrol --list-events. Questo significa che — almeno per questo sistema particolare — l'overhead di OProfile nel peggiore delle ipotesi consuma approssimativamente l'11% della CPU.
| [1] | I numeri maggiori del dispositivo si possono trovare utilizzando ls -l, in modo da visualizzare il file del dispositivo desiderato in /dev/. Il numero maggiore in questo esempio appare dopo la specificazione del gruppo del dispositivo. |
| [2] | . A causa dei cambiamenti dei carichi del sistema, il periodo entro il quale i dati sono stati raccolti può variare di uno o due secondi. |
| [3] | OProfile è in grado di usare anche un meccanismo di fallback (conosciuto anche come TIMER_INT), per quelle architetture del sistema che presentano delle carenze per quanto riguarda l'hardware di controllo delle prestazioni. |