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
명령이 올바르지 않습니다. dd
1GB 블록을 읽으라고 지시하고 있지만 읽기 수에는 제한이 없습니다. 1GB를 읽는 데 걸리는 시간만 측정하려면 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 파일보다 복사 속도가 느리고 할당된 파일 크기로 인해 장치에서 더 많은 공간을 차지합니다.