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