IMO, 질문에 몇 가지 잘못된 가정이 있지만 어쨌든 재미 있습니다.
이 질문에서 제안 된 이론적 인 RAM 속도 계산은 다중 채널 아키텍처를 잊어 버린 것처럼 보입니다. I는 다음 식에 사용한다 : 사용자의 예에서
Max transfer rate = clock frequency * transfers per clock * interface width * number of interfaces
to be divided by 8 to get the results in bytes/s
를 클록 주파수 = 667 MHz의 클럭 당 전송 = 2 인터페이스 폭 = 64 비트, 인터페이스의 수 (그것은 DDR-1333 메모리이기 때문에) 마더 보드 및 연결된 메모리 모듈의 수에 따라 다릅니다. 가장 최근의 PC는 2 개의 채널을 제공합니다. 최근 서버는 3 개 또는 4 개의 채널을 제공합니다. 인터페이스 수는 min (CPU 당 모듈 수, 채널 수)입니다.
DD3 메모리의 버스트 속도에 대한 일부 정보 : http://en.wikipedia.org/wiki/DDR3_SDRAM
지금,이 대역폭은 시간의 짧은 기간에 일반적으로 단지 지속 가능한 이론적 인 버스트 속도에 해당하는 것을 명심해야합니다. 또한 메모리 모듈 기능 만 규정하기 때문에 프론트 사이드 버스 및 CPU 메모리 컨트롤러에는 아무런 의미가 없습니다. 즉, 매우 빠른 메모리 모듈을 사용하더라도 느린 CPU가 메모리 대역폭을 포화시킬 수 없습니다. 병목 현상이 메모리 모듈에 항상있는 것은 아닙니다.
ccNUMA 컴퓨터 (2 소켓 또는 4 소켓이있는 대부분의 서버)에서 CPU 코어가 다른 CPU에 연결된 메모리 뱅크에있는 블록에 액세스해야하는 경우 상호 연결 버스 (QPI 또는 hypertransport)가 사용됩니다. 이 버스는 또한 병목 일 수 있습니다. DD는 파일 시스템 인터페이스를 사용하기 때문에
그것은, 전용 메모리 전송을 행사하지 않습니다
마지막으로, 나는 때문에 테스트 (사용 DD)의 방법은, 결함 생각합니다. 결과 파일이 메모리 파일 시스템 (예 : tmpfs 또는/dev/shm)에서 호스팅된다고 가정하더라도 dd는 시스템 호출을 수행하여 작업을 수행하므로 추가 비용이 발생합니다.
dd는 단일 스레드 프로세스입니다. 단일 코어로 전체 메모리 대역폭을 포화시키지 못할 수 있습니다. 여러 개의 소켓이있는 서버에서는 100 % 보장됩니다. 단일 소켓 시스템에서는 CPU 자체에 달려 있다고 생각합니다.
실제 메모리 대역폭을 실제로 계산하여 이론적 인 한계와 비교하려면이 목적으로 설계된 벤치 마크 프로그램을 사용하는 것이 좋습니다.예를 들어, the STREAM benchmark은 종종 지속 가능한 메모리 대역폭을 측정하는 데 사용됩니다.
대용량 파일을 사용해도 속도는 매우 적습니다. 1GB에서 10GB까지의 파일을 시도하지만 모든 경우에 쓰기 속도는 1GB/s (근사치)가됩니다. – humanshu
따라서 공급 업체에 따르면 쓰기 속도는 +/- 10000 Mb/초이며 약 10 Mb/초입니다. 그 맞습니까 ? – tvCa
벤더 속도는 10GB/s가되어야하지만 위의 명령은 약 1GB/s입니다. – humanshu