dd if=/dev/zero of=tmp.dat bs=1M count=1024 status=progress
500G HDD에서 명령을 실행하면 다음과 같은 결과가 나타납니다.
833617920 bytes (834 MB, 795 MiB) copied, 1 s, 829 MB/s
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 1.41974 s, 756 MB/s
내가 아는 한 SATA의 기계식 드라이브는 약 100MB/s 정도인 것으로 알고 있는데 이것은 가짜인 것 같습니다(756MB/s!).
이것을 확인하기 위해 나는 달려가서 sudo hdparm -t /dev/sda
얻었습니다.
/dev/sda:
Timing buffered disk reads: 350 MB in 3.01 seconds = 116.26 MB/sec
이것이 더 합리적인 것 같습니다(116MB/s).
그러나 상황을 더욱 혼란스럽게 만들기 위해 다른 테스트를 실행했습니다. ( rm tmp.dat;dd if=/dev/zero of=tmp.dat bs=1M count=512 status=progress
동일한 작업, 데이터의 절반 복사) 훨씬 더 말도 안되는 결과가 나왔습니다.
512+0 records in
512+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 0.576224 s, 932 MB/s
기계식 드라이브의 읽기/쓰기 속도는 초당 거의 기가바이트입니다! SATA+HDD에 이 크기의 파일을 복사하는 데 1초(0.576초)도 걸리지 않는 것이 어떻게 가능합니까? dd 보고서와 hdparm 보고서 사이에 차이점이 있는 이유는 무엇입니까? 출력 파일 크기에 따라 변경되는 이유는 무엇입니까?
분명히 여기에 뭔가가 빠졌습니다. *nix 마스터님, 가르쳐 주세요