2.3. Diskdevstat e netdevstat


Diskdevstat e netdevstat sono tool di SystemTap usati per raccogliere informazioni dettagliate sull'attività del disco e della rete di tutte le applicazioni in esecuzione su di un sistema. Questi tool si ispirano a PowerTOP, il quale mostra il numero di CPU wakeup per ogni applicazione al secondo (consultare Sezione 2.2, «PowerTOP»). Le informazioni raccolte dai suddetti tool permetteranno all'utente di identificare le applicazioni che consumano inutilmente energia le quali presentano numerose piccole operazioni I/O e no operazioni più grandi ma meno frequenti. Altri tool di monitoraggio in grado di misurare la velocità di trasferimento non aiutano ad identificare questo tipo d'uso.
Installare questi tool con SystemTap usando il comando:
yum install systemtap tuned-utils kernel-debuginfo
Eseguire i tool con il comando:
diskdevstat
o il comando:
netdevstat
Entrambi i comandi possono comprendere fino a tre parametri:
diskdevstat update_interval total_duration display_histogram
netdevstat update_interval total_duration display_histogram
update_interval
Il periodo in secondi tra gli aggiornamenti del display. Per impostazione predefinita: 5
total_duration
Il periodo in secondi dell'intera esecuzione. Per impostazione predefinita: 86400 (1 giorno)
display_histogram
Indica se usare gli istogrammi per tutti i dati raccolti alla fine della esecuzione.
L'output somiglia al PowerTOP. Di seguito viene riportato un output d'esempio di una esecuzione più lunga di diskdevstat su di un sistema Fedora 10 sul quale viene eseguito KDE 4.2:
  PID   UID DEV     WRITE_CNT WRITE_MIN WRITE_MAX WRITE_AVG    READ_CNT  READ_MIN  READ_MAX  READ_AVG COMMAND        
 2789  2903 sda1          854     0.000   120.000    39.836           0     0.000     0.000     0.000 plasma            
15494     0 sda1            0     0.000     0.000     0.000         758     0.000     0.012     0.000 0logwatch         
15520     0 sda1            0     0.000     0.000     0.000         140     0.000     0.009     0.000 perl              
15549     0 sda1            0     0.000     0.000     0.000         140     0.000     0.009     0.000 perl              
15585     0 sda1            0     0.000     0.000     0.000         108     0.001     0.002     0.000 perl              
 2573     0 sda1           63     0.033  3600.015   515.226           0     0.000     0.000     0.000 auditd            
15429     0 sda1            0     0.000     0.000     0.000          62     0.009     0.009     0.000 crond             
15379     0 sda1            0     0.000     0.000     0.000          62     0.008     0.008     0.000 crond             
15473     0 sda1            0     0.000     0.000     0.000          62     0.008     0.008     0.000 crond             
15415     0 sda1            0     0.000     0.000     0.000          62     0.008     0.008     0.000 crond             
15433     0 sda1            0     0.000     0.000     0.000          62     0.008     0.008     0.000 crond             
15425     0 sda1            0     0.000     0.000     0.000          62     0.007     0.007     0.000 crond             
15375     0 sda1            0     0.000     0.000     0.000          62     0.008     0.008     0.000 crond             
15477     0 sda1            0     0.000     0.000     0.000          62     0.007     0.007     0.000 crond             
15469     0 sda1            0     0.000     0.000     0.000          62     0.007     0.007     0.000 crond             
15419     0 sda1            0     0.000     0.000     0.000          62     0.008     0.008     0.000 crond             
15481     0 sda1            0     0.000     0.000     0.000          61     0.000     0.001     0.000 crond             
15355     0 sda1            0     0.000     0.000     0.000          37     0.000     0.014     0.001 laptop_mode       
 2153     0 sda1           26     0.003  3600.029  1290.730           0     0.000     0.000     0.000 rsyslogd          
15575     0 sda1            0     0.000     0.000     0.000          16     0.000     0.000     0.000 cat               
15581     0 sda1            0     0.000     0.000     0.000          12     0.001     0.002     0.000 perl              
15582     0 sda1            0     0.000     0.000     0.000          12     0.001     0.002     0.000 perl              
15579     0 sda1            0     0.000     0.000     0.000          12     0.000     0.001     0.000 perl              
15580     0 sda1            0     0.000     0.000     0.000          12     0.001     0.001     0.000 perl              
15354     0 sda1            0     0.000     0.000     0.000          12     0.000     0.170     0.014 sh                
15584     0 sda1            0     0.000     0.000     0.000          12     0.001     0.002     0.000 perl              
15548     0 sda1            0     0.000     0.000     0.000          12     0.001     0.014     0.001 perl              
15577     0 sda1            0     0.000     0.000     0.000          12     0.001     0.003     0.000 perl              
15519     0 sda1            0     0.000     0.000     0.000          12     0.001     0.005     0.000 perl              
15578     0 sda1            0     0.000     0.000     0.000          12     0.001     0.001     0.000 perl              
15583     0 sda1            0     0.000     0.000     0.000          12     0.001     0.001     0.000 perl              
15547     0 sda1            0     0.000     0.000     0.000          11     0.000     0.002     0.000 perl              
15576     0 sda1            0     0.000     0.000     0.000          11     0.001     0.001     0.000 perl              
15518     0 sda1            0     0.000     0.000     0.000          11     0.000     0.001     0.000 perl              
15354     0 sda1            0     0.000     0.000     0.000          10     0.053     0.053     0.005 lm_lid.sh
Le colonne sono:
PID
l'ID del processo dell'applicazione
UID
l'ID utente con il quale le applicazioni sono in esecuzione
DEV
il dispositivo sul quale si è verificato l'I/O
WRITE_CNT
il numero totale di operazioni di scrittura
WRITE_MIN
il tempo più breve usato da due operazioni consecutive di scrittura (in secondi)
WRITE_MAX
il tempo più lungo usato da due operazioni consecutive di scrittura (in secondi)
WRITE_AVG
il tempo medio usato da due operazioni consecutive di scrittura (in secondi)
READ_CNT
il numero totale di operazioni di lettura
READ_MIN
il tempo più breve usato da due operazioni consecutive di lettura (in secondi)
READ_MAX
il tempo più lungo usato da due operazioni consecutive di lettura (in secondi)
READ_AVG
il tempo medio usato da due operazioni consecutive di lettura (in secondi)
COMMAND
il nome del processo
In questo esempio sono in particolare risalto tre applicazioni:
  PID   UID DEV     WRITE_CNT WRITE_MIN WRITE_MAX WRITE_AVG    READ_CNT  READ_MIN  READ_MAX  READ_AVG COMMAND
 2789  2903 sda1          854     0.000   120.000    39.836           0     0.000     0.000     0.000 plasma
 2573     0 sda1           63     0.033  3600.015   515.226           0     0.000     0.000     0.000 auditd
 2153     0 sda1           26     0.003  3600.029  1290.730           0     0.000     0.000     0.000 rsyslogd
Queste applicazioni hanno un WRITE_CNT maggiore di 0, ciò significa che è stato eseguito un processo di scrittura durante la misurazione. Tra questi plasma risulta essere la peggior applicazione: infatti ha eseguito il maggior numero di operazioni di scrittura, e di conseguenza il tempo medio tra operazioni di scrittura è risultato il più basso. Per questo motivo Plasma rappresenta il miglior candidato da investigare se si desidera identificare le applicazioni più inefficienti in termini di consumo energetico.
Utilizzare i comandi strace e ltrace per esaminare le applicazioni in modo più dettagliato controllando tutte le chiamate dei sistemi di un dato ID del processo. In questo esempio sarà possibile eseguire:
strace -p 2789
In questo esempio l'output di strace presentava un percorso ripetitivo ogni 45 secondi il quale apre un file cache dell'icona KDE dell'utente per un processo di scrittura seguito dalla chiusura del file. Tale operazione comportava una scrittura del disco fisso poichè i metadati del file (in particolare il periodo della modifica) venivano modificati. La correzione finale impedisce l'esecuzione di chiamate non necessarie senza il verificarsi di aggiornamenti per le icone.
Red Hat logoGithubRedditYoutubeTwitter

Formazione

Prova, acquista e vendi

Community

Informazioni sulla documentazione di Red Hat

Aiutiamo gli utenti Red Hat a innovarsi e raggiungere i propri obiettivi con i nostri prodotti e servizi grazie a contenuti di cui possono fidarsi.

Rendiamo l’open source più inclusivo

Red Hat si impegna a sostituire il linguaggio problematico nel codice, nella documentazione e nelle proprietà web. Per maggiori dettagli, visita ilBlog di Red Hat.

Informazioni su Red Hat

Forniamo soluzioni consolidate che rendono più semplice per le aziende lavorare su piattaforme e ambienti diversi, dal datacenter centrale all'edge della rete.

© 2024 Red Hat, Inc.