RAMFS는 스왑을 사용하지 않습니다(TMPFS는 사용함). 그래서 FS를 마운트합니다.
cd /mnt/; mkdir SOMETHING; mount -t ramfs -o size=1500m ramfs /mnt/SOMETHING; cd /mnt/SOMETHING
테스트 파일을 생성합니다.
dd if=/dev/zero of=testfile_500MB bs=524288000 count=1
I cp 테스트 파일(메모리에서 메모리로)
time cp testfile_500MB testfile_500MB_cptestfile
real 0m0.599s
user 0m0.008s
sys 0m0.592s
내 PC에는 DDR2-1066 모듈이 있습니다. 병목 현상은 무엇입니까? 이 Wikipedia 기사에 따르면:
http://en.wikipedia.org/wiki/List_of_device_bandwidths
10GB/초 이상이 필요합니다! 속도는 10GB/초를 초과하지 않습니다.
0.599초에 500MB = 835MB/초. 아주 느린.
CPU가 병목 현상인가? 또는 무엇을? :O(E7300 @ 2.66GHz)
업데이트: "시간" 측면에서 "cp"를 측정하는 것이 좋은가요?
답변1
테스트가 실행 오버헤드를 균등화할 만큼 길지 않을 수 있으므로 cp
이것이 좋은 테스트인지는 모르겠습니다. 비슷한 것을 시도해 볼 수도 있습니다 bonnie++
.
그러나 당신이 제시한 숫자는 제가 보기엔 무리한 것 같지 않습니다. memtest86+를 믿으면 대부분의 듀얼 채널 RAM 시스템은 주 메모리로의 전송 속도가 2~3GB/s입니다. 단일 채널(즉, 단 하나의 RAM)은 느려집니다(반드시 절반은 아님). 이해할 수 있는 오버헤드를 제외하면 1GB/s 미만의 속도가 합리적으로 보입니다.
답변2
를 사용하면 cp
데이터가 여러 버퍼(사용자 측 및 커널 측)를 통과하므로 필요한 메모리 대역폭에 큰 요소를 곱할 수 있습니다. 어쩌면 ramfs가 내부적으로 약간의 오버헤드를 추가할 수도 있습니다. 따라서 cp
확실히 메모리 대역폭을 테스트하기 위한 좋은 도구는 아닙니다.
특정 도구가 있어야합니다여기 저기 놓여있다그런 이유로.