명령에서 일어나는 일
sudo dd if=/dev/zero of=/dev/null bs=500M count=1.
실제로 0은 어디로 가고 일반적으로 어떻게됩니까? 속도는 905MB / s입니다
램 디스크를 사용하면 속도는 388MB / s에 불과합니다. 그리고 내가 ddhdd에 속도는 단지 63.2 MB / s입니다
명령에서 일어나는 일
sudo dd if=/dev/zero of=/dev/null bs=500M count=1.
실제로 0은 어디로 가고 일반적으로 어떻게됩니까? 속도는 905MB / s입니다
램 디스크를 사용하면 속도는 388MB / s에 불과합니다. 그리고 내가 ddhdd에 속도는 단지 63.2 MB / s입니다
답변:
/dev/zero읽을 때 0 바이트의 끝없는 스트림을 제공합니다. 이 기능은 커널에서 제공하며 메모리 할당이 필요하지 않습니다. 에 대한 모든 쓰기 /dev/null가 자동으로 삭제됩니다.
결과적으로를 수행하면 dd시스템은 단순히 버려지는 500 바이트를 0 바이트로 생성합니다. 임시 버퍼를 제외하고이 작업 전, 중 또는 후에 데이터가 저장되지 않습니다.
의 전송 속도 /dev/zero로 /dev/null되어 프로세서 및 관련 시스템 호출의 속도에 의해 주로 결정. (귀하의 경우 버퍼 크기가 500MB이므로 작업이 메모리 속도도 테스트합니다.)
이 명령을 번역 해 드리겠습니다 :
dd if=/dev/zero of=/dev/null bs=500M count=1
500M 크기 ( = 블록 크기)의 블록을 사용하여 (가상 무제한의 공급 )의 dd입력 파일 ( if)에서 /dev/zero(가상 싱크 홀) 의 0출력 파일 ( of) 로 데이터 ( )를 복제 하고이 ( )를 한 번만 반복하십시오 ( )./dev/nullbscount1
일반적으로이 명령은 메모리 및 버스 속도 만 측정해야합니다. 그러나 500MB의 사용 가능한 RAM이 없으면 실패 할 수 있습니다. 따라서 어떤 의미에서 OS가 큰 메모리 청크를 얼마나 빨리 할당 할 수 있는지 암시 적으로 벤치마킹합니다.
/ dev / null 은 블랙홀입니다. 실제로 일반 파일처럼 디스크에 쓰지 않기 때문에 일반 쓰기 작업을 테스트하기에는 정확하지 않습니다. 헤드는 디스크에 쓰지 않고 장치에 쓰면 즉시 삭제되므로 일반 로컬 쓰기보다 항상 빠릅니다.
/ dev / zero 는 읽기와 비슷합니다. 읽을 때 머리를 움직일 필요가 없으며, 널 (null) 문자를 무제한 제공 할 수 있으므로 항상 로컬 읽기보다 빠르게 읽을 수 있습니다.
다시 말해서, 이것은 빈 공간에서 테스트하는 것과 같으며 일반적인 로컬 읽기 및 쓰기가 무엇을 산출해야하는지에 대한 정확한 그림을 제공하지 않습니다.
/dev/null테스트 / 타이밍 읽기 작업 을 수행하기에 좋은 대상입니다 ./dev/zero테스트 / 타이밍 쓰기 작업을 위한 좋은 소스입니다 . 한 번의 조작으로이 소스와 대상을 결합하는 것은 의미가 없습니다. 이것이 의미있는 오버 헤드 번호를 제공하는지 확실하지 않습니다.