linux系統IO性能測試
阿新 • • 發佈:2018-12-11
local inux oot 參數 長時間 bytes foo flag 0.12 dd命令能粗略測試硬盤IO性能,但是執行dd命令測試硬盤IO性能,對硬盤的損害很大,不建議多次或長時間嘗試.
user:這個時間代表的是foo運行在用戶態的cpu時間,
sys: 這個時間代表的是foo運行在核心態的cpu時間。
[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的數據,寫入到磁盤的緩存中,然後再從磁盤緩存中讀取,一次性寫入到硬盤當中。
time命令用來計算dd程序的運行耗時(real), 用戶態cpu耗時(user), 系統態cpu耗時(sys)。
real : 表示foo程序整個的運行耗時。可以理解為foo運行開始時刻你看了一下手表,foo運行結束時,你又看了一下手表,兩次時間的差值就是本次real 代表的值
sys: 這個時間代表的是foo運行在核心態的cpu時間。
linux系統IO性能測試