1GBのみを読みたい場合は、ddコマンドを使用してください。

1GBのみを読みたい場合は、ddコマンドを使用してください。

32GBのUSBハードドライブがありますが、USBドライブから1GBのデータをコピーするのにどれくらいの時間がかかるかを知りたいです。使ってみようdd if=/dev/sdb1 of=/dev/null

出力は次のとおりです

dd if=/dev/sdb1 of=/dev/null bs=1G
 28+1 records in
 28+1 records out
 30751983616 bytes (31 GB) copied, 331.297 s, 92.8 MB/s

私が使っている方法が正しいのか、それとも私が間違っているのか。他のツールは使用できず、ddコマンドのみを使用できます。

答え1

コマンドが正しくありません。dd1GBブロックを読み込むように指示していますが、読み込み数に制限はありません。 1 GBの読み込みにかかる時間だけを測定するには、1つのddブロックのみを読み取るように指示します。

dd if=/dev/sdb1 of=/dev/null bs=1G count=1

デバイスを以前に読み込んだ場合、バッファリングを使用すると、このコマンドをより速く実行できます。

答え2

まず、@jiliagreが言ったように、1Gbではなくパーティション全体(31Gb)の転送時間を測定しています。出力の最後の行は次のようになります。

30751983616バイト(31GB)コピー、331.297秒、92.8MB /秒

第二に、データを書き込んでいるので/dev/nullデータをブラックホールするので、USBドライブの読み取り時間だけが提供されます。

実際のI / O転送時間は、ターゲットデバイスの書き込み速度機能によって制限され、より遅くなる可能性があります。

また、コピーするデータによっても異なります。小さな1Gbファイルは、単一の1Gbファイルよりもコピー速度が遅く、割り当てられたファイルサイズのためにデバイス上のより多くのスペースを占有します。

関連情報