linux系統IO性能測試

dd命令能粗略測試硬盤IO性能,可是執行dd命令測試硬盤IO性能,對硬盤的損害很大,不建議屢次或長時間嘗試.數據庫

[root@localhost /]# time dd if=/dev/zero of=/dev/null bs=4k count=256000
256000+0 records in
256000+0 records out
1048576000 bytes (1.0 GB) copied, 0.782804 s, 1.3 GB/s

real    0m0.786s
user    0m0.160s
sys 0m0.626s
[root@localhost /]# time dd if=/dev/zero of=/dev/null bs=4k count=256000 oflag=dsync
256000+0 records in
256000+0 records out
1048576000 bytes (1.0 GB) copied, 0.758887 s, 1.4 GB/s

real    0m0.762s
user    0m0.120s
sys 0m0.642s
[root@localhost /]# time dd if=/dev/zero of=/dev/null bs=4k count=256000 conv=fdatasync
dd: fsync failed for ‘/dev/null’: Invalid argument
256000+0 records in
256000+0 records out
1048576000 bytes (1.0 GB) copied, 0.514259 s, 2.0 GB/s

real    0m0.518s
user    0m0.128s
sys 0m0.390s
[root@localhost /]#

oflag=dsync:dd會從/dev/zero中,每次讀取4Kbytes數據,而後直接寫入到硬盤當中,重複此步驟,直到共讀取而且寫入了1 Gbytes的數據。這個過程可能會很慢,由於沒有用到寫緩存(write cache),加此參數,能夠模擬數據庫的插入操做,可能跟接近真實。緩存

conv=fdatasync:dd會從/dev/zero中一次性讀取1 Gbytes的數據,寫入到磁盤的緩存中,而後再從磁盤緩存中讀取,一次性寫入到硬盤當中。async

time命令用來計算dd程序的運行耗時(real), 用戶態cpu耗時(user), 系統態cpu耗時(sys)。
real : 表示foo程序整個的運行耗時。能夠理解爲foo運行開始時刻你看了一下手錶,foo運行結束時,你又看了一下手錶,兩次時間的差值就是本次real 表明的值
user:這個時間表明的是foo運行在用戶態的cpu時間,
sys: 這個時間表明的是foo運行在覈心態的cpu時間。ide

相關文章
相關標籤/搜索