RAMFS가 예상보다 느린 것 같습니다. 병목 현상은 무엇입니까?

RAMFS가 예상보다 느린 것 같습니다. 병목 현상은 무엇입니까?

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확실히 메모리 대역폭을 테스트하기 위한 좋은 도구는 아닙니다.

특정 도구가 있어야합니다여기 저기 놓여있다그런 이유로.

답변3

실제로 생각보다 느립니다. 이런 식으로 파일을 생성하면 다음과 같습니다.부족한기본적으로 파일 시스템은 다음과 같이 마운트됩니다.비동기 I/O.

물론, cp는 대용량 파일을 복사할 때 속도가 매우 느립니다(이 문제를 해결하는 다양한 방법이 있습니다. 가장 일반적인 방법은 파이프 전체에서 cpio를 사용하는 것입니다).

어떤 속도를 측정하시겠습니까? 메모리 I/O를 측정하려면 다음을 사용하십시오.기억력 테스트. 실제로 ramfs 성능을 측정하려면 다음을 사용하십시오.페오

관련 정보