/dev/zero
fornisce un flusso infinito di zero byte durante la lettura. Questa funzione è fornita dal kernel e non richiede l'allocazione di memoria. Tutte le scritture su /dev/null
vengono rilasciati silenziosamente.
Di conseguenza, quando esegui dd
, il sistema genera 500 megabyte in zero byte che vengono semplicemente scartati. Ad eccezione di un buffer temporaneo, nessun dato viene memorizzato prima, durante o dopo questa operazione.
La velocità del trasferimento da /dev/zero
a /dev/null
è determinato principalmente dalla velocità del processore e dalle chiamate di sistema pertinenti. (Nel tuo caso, il buffer è grande 500 MB, e quindi l'operazione verifica anche la velocità della tua memoria.)
Tradurrò questo comando per te:
dd if=/dev/zero of=/dev/null bs=500M count=1
Dati duplicati (dd
) dal file di input (if
) di /dev/zero
(fornitura virtuale illimitata di 0
's) nel file di output (of
) di /dev/null
(dolina virtuale) utilizzando blocchi di dimensioni 500M (bs
=dimensione del blocco) e ripetere questo (count
) solo una volta (1
).
In generale, questo comando dovrebbe misurare solo la velocità della memoria e del bus. Tuttavia, potrebbe non riuscire se non si dispone di 500 MB di RAM disponibile. Quindi, in un certo senso, analizza implicitamente anche la velocità con cui il tuo sistema operativo può allocare grossi blocchi di memoria.
/dev/null è un buco nero. Non è accurato per testare le normali operazioni di scrittura poiché in realtà non scrive su disco come farebbe un normale file. Anziché avere la testina che scrive su disco, i dati vengono scartati immediatamente dopo la scrittura sul dispositivo, quindi saranno sempre più veloci delle normali scritture locali.
/dev/zero è simile per le letture. Non richiede il movimento della testa per leggere, è solo una fornitura illimitata di caratteri nulli, quindi leggerà sempre più velocemente di qualsiasi lettura locale.
In altre parole, è come testare nel vuoto e non fornisce un'immagine accurata di ciò che dovrebbero produrre le normali letture e scritture locali.