/ dev / zero에서 / dev / null로 DD… 실제로 일어나는 일


13

명령에서 일어나는 일

sudo dd if=/dev/zero of=/dev/null bs=500M count=1. 

실제로 0은 어디로 가고 일반적으로 어떻게됩니까? 속도는 905MB / s입니다

램 디스크를 사용하면 속도는 388MB / s에 불과합니다. 그리고 내가 ddhdd에 속도는 단지 63.2 MB / s입니다


1
/dev/null테스트 / 타이밍 읽기 작업 을 수행하기에 좋은 대상입니다 . /dev/zero테스트 / 타이밍 쓰기 작업을 위한 좋은 소스입니다 . 한 번의 조작으로이 소스와 대상을 결합하는 것은 의미가 없습니다. 이것이 의미있는 오버 헤드 번호를 제공하는지 확실하지 않습니다.
톱밥

@sawdust 다른 방법은 없습니까?
Jamie

2
예, @sawdust, 위의 의견은 불쾌합니다 (초보자에게는). of = / dev / sda는 누군가의 하드 드라이브 파티션, 내용 등을 덮어 씁니다. of = ~ / bigfile.tmp를 사용하는 것이 더 좋은 예일 것입니다.
Kevin Traas

2
나는 파티에 꽤 늦었다는 것을 알고 있지만, 누군가 스스로 이것을 시도하고 싶다면 :이 명령을 루트로 실행할 필요가 없으므로 sudo가 필요하지 않습니다.
Roel Schroeven

@Jamie Nah, 올바른 방법입니다.
Awn

답변:


14

/dev/zero읽을 때 0 바이트의 끝없는 스트림을 제공합니다. 이 기능은 커널에서 제공하며 메모리 할당이 필요하지 않습니다. 에 대한 모든 쓰기 /dev/null가 자동으로 삭제됩니다.

결과적으로를 수행하면 dd시스템은 단순히 버려지는 500 바이트를 0 바이트로 생성합니다. 임시 버퍼를 제외하고이 작업 전, 중 또는 후에 데이터가 저장되지 않습니다.

의 전송 속도 /dev/zero/dev/null되어 프로세서 및 관련 시스템 호출의 속도에 의해 주로 결정. (귀하의 경우 버퍼 크기가 500MB이므로 작업이 메모리 속도도 테스트합니다.)


7

이 명령을 번역 해 드리겠습니다 :

dd if=/dev/zero of=/dev/null bs=500M count=1

500M 크기 ( = 블록 크기)의 블록을 사용하여 (가상 무제한의 공급 )의 dd입력 파일 ( if)에서 /dev/zero(가상 싱크 홀) 의 0출력 파일 ( of) 로 데이터 ( )를 복제 하고이 ( )를 한 번만 반복하십시오 ( )./dev/nullbscount1

일반적으로이 명령은 메모리 및 버스 속도 만 측정해야합니다. 그러나 500MB의 사용 가능한 RAM이 없으면 실패 할 수 있습니다. 따라서 어떤 의미에서 OS가 큰 메모리 청크를 얼마나 빨리 할당 할 수 있는지 암시 적으로 벤치마킹합니다.


메모리를 측정하면 램 디스크에 쓰는 속도가 얼마나 느려 집니까?
agz

2
램 디스크는 여전히 파일 시스템을 갖도록 포맷되어야하기 때문에 커널 드라이버에 의해 유지되어야합니다. 또한 램 디스크에 쓰면 사용자 공간에서 커널 공간으로 데이터를 복사하는 오버 헤드가 생길 수 있습니다. / dev / zero 또는 / dev / null을 사용하면이 오버 헤드는 거의 0입니다.
mvp

전에는 "데이터 중복"을 본 적이 없습니다. dd는 dd가 "복사 및 변환"을 의미하는 오래된 SunOS 매뉴얼 페이지에서 읽은 것을 기억합니다 (cc가 촬영 됨).
Dan Pritts

5

/ dev / null 은 블랙홀입니다. 실제로 일반 파일처럼 디스크에 쓰지 않기 때문에 일반 쓰기 작업을 테스트하기에는 정확하지 않습니다. 헤드는 디스크에 쓰지 않고 장치에 쓰면 즉시 삭제되므로 일반 로컬 쓰기보다 항상 빠릅니다.

/ dev / zero 는 읽기와 비슷합니다. 읽을 때 머리를 움직일 필요가 없으며, 널 (null) 문자를 무제한 제공 할 수 있으므로 항상 로컬 읽기보다 빠르게 읽을 수 있습니다.

다시 말해서, 이것은 빈 공간에서 테스트하는 것과 같으며 일반적인 로컬 읽기 및 쓰기가 무엇을 산출해야하는지에 대한 정확한 그림을 제공하지 않습니다.


램도 관여하지 않습니다 ... 그래서이 테스트는 무엇입니까 ... 시계 속도?
agz

1
  1. /dev/null어디에도 없다. 쓰여진 데이터는 단순히 삭제됩니다.

  2. 램 디스크에는 사용해야하는 파일 시스템이 있습니다. dd파일 시스템 항목을 작성하고 파일 시스템의 규칙에 따라 작성해야합니다. 또한 OS는 동시에 다른 작업에 메모리를 사용하므로 쓰기 작업이 남아있는 것을 얻습니다.

  3. 비 SSD 하드 드라이브는 보통 속도가 느리므로 정확합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.