Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

What happens in the command

sudo dd if=/dev/zero of=/dev/null bs=500M count=1. 

Where do the zeros actually go and in general what happens? The speed is 905 MB/s

If I dd to ramdisk the speed is only 388 MB/s. And if I dd to my hdd the speed is only 63.2 MB/s

share|improve this question
    
/dev/null is a good destination for testing/timing read operations. /dev/zero is a good source for testing/timing write operations. Combining this source and destination in one operation doesn't make much sense. Not even sure if this provides any meaningful overhead number. –  sawdust Apr 9 '13 at 0:18
    
@sawdust Other way around, no? –  Jamie Feb 26 at 18:37
    
@Jamie -- No. To time or test reads from disk, you could use dd if=/dev/sda of=/dev/null. To time or test writes to disk, you could use dd if=/dev/zero of=/dev/sda. If you think my comment is incorrect, then would you also disagree with the accepted answer? –  sawdust Feb 26 at 23:36
add comment

4 Answers

up vote 4 down vote accepted

/dev/zero provides an endless stream of zero bytes when read. This function is provided by the kernel and does not require allocating memory. All writes to /dev/null are dropped silently.

As a result, when you perform the dd, the system generates 500 megabytes in zero bytes that simply get discarded. Except for a temporary buffer, no data are stored before, during, or after this operation.

The speed of the transfer from /dev/zero to /dev/null is determined primarily by the speed of your processor and relevant system calls. (In your case, the buffer is 500 MB large, and hence the operation tests the speed of your memory as well.)

share|improve this answer
add comment

/dev/null is a black hole. It is not accurate for testing normal write operations as it doesn't actually write to disk as a normal file would. Rather than have the head write to disk, the data is discarded immediately upon write to the device, so it will always be faster than normal local writes.

/dev/zero is similar for reads. It does not require head movement to read from, it is just a limitless supply of null characters, so it will always read faster than any local read.

In other words, this is like testing in a void and will not give an accurate picture of what normal local reads and writes should yield.

share|improve this answer
    
Ram is also not involved I assume...so what does this test...clock speed? –  agz Apr 9 '13 at 1:42
add comment
  1. /dev/null is no where they are simply deleted.

  2. Your ramdisk has a file system it has to use. dd has to create a file system entry and write following the rules of the file system. Also your OS is using your memory for other things at the same time so your write operation gets what is left.

  3. Non SSD Hard drives are just plain slow so that is also correct.

share|improve this answer
add comment

I will translate this command for you:

dd if=/dev/zero of=/dev/null bs=500M count=1

Duplicate data (dd) from input file (if) of /dev/zero (virtual limitless supply of 0's) into output file (of) of /dev/null (virtual sinkhole) using blocks of 500M size (bs = block size) and repeat this (count) just once (1).

In general, this command should measure just memory and bus speeds. However, it may fail if you do not have 500MB of RAM available. So, in a sense, it also implicitly benchmarks how fast your OS can allocate big memory chunks.

share|improve this answer
    
If it measures memory, how come writing to a ramdisk is significantly slower? –  agz Apr 9 '13 at 19:48
    
Because ramdisk still have to be formatted to have a filesystem, which must be maintained by kernel driver. That also means writing to ramdisk will have overhead of copying data from userspace into kernel space - not exactly free. With /dev/zero or /dev/null, this overhead is almost zero. –  mvp Apr 9 '13 at 21:09
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.