Forum for asking questions related to block device drivers

Arlie Stephens arlie at worldash.org
Thu Apr 11 18:06:11 EDT 2013


Hi Neha,

On Apr 11 2013, neha naik wrote:
> HI Greg,
>    Thanks a lot. Everything you said made complete sense to me but when i
> tried running with following options my read is so slow (basically with
> direct io, that with 1MB/s it will just take 32minutes to read 32MB data)
> yet my write is doing fine. Should i use some other options of dd (though i
> understand that with direct we bypass all caches, but direct doesn't
> guarantee that everything is written when call returns to user for which i
> am using fdatasync). 

I'm no kind of expert, but the last time I found myself timing dd, I
found that the block size was critical, and 4096 bytes is a very small
block size, from a dd point of view. On freebsd at least, cranking it
up to at least 1MB did great things for its performance. What happens 
with "bs=1M" ? 

> time dd if=/dev/shm/image of=/dev/sbd0 bs=4096 count=262144 oflag=direct
> conv=fdatasync
> time dd if=/dev/pdev0 of=/dev/null bs=4096 count=2621262144+0 records in
> 262144+0 records out
> 1073741824 bytes (1.1 GB) copied, 17.7809 s, 60.4 MB/s
> 
> real    0m17.785s
> user    0m0.152s
> sys    0m1.564s
> 
> 
> I interrupted the dd for read because it was taking too much time with
> 1MB/s :
> time dd if=/dev/pdev0 of=/dev/null bs=4096 count=262144 iflag=direct
> conv=fdatasync
> ^C150046+0 records in
> 150045+0 records out
> 614584320 bytes (615 MB) copied, 600.197 s, 1.0 MB/s
> 
> 
> real    10m0.201s
> user    0m2.576s
> sys    0m0.000s
> 
> Thanks,
> Neha



More information about the Kernelnewbies mailing list