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
yum install systemtap tuned-utils kernel-debuginfo
		Eseguire i tool con il comando:
	
diskdevstat
diskdevstat
		o il comando:
	
netdevstat
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:
	
		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
  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
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.