벤치마크 /dev/shm

벤치마크 /dev/shm

저는 현재 빠른 프로세스 간 및 임시 I/O 통신(이미지 및 대형 hdf5 배열)이 필요한 소프트웨어를 개발 중입니다. 데이터의 "수명"은 다양하며 여러 사항에 따라 다르지만 대부분의 경우 몇 초에서 몇 분 사이입니다. 몇 개의 파일만 더 오래 저장하면 됩니다. 어떤 데이터도 지속적으로 저장할 필요가 없습니다.

그러므로 나는 /dev/shm가야 할 길이라고 생각했습니다. 그러나 벤치마킹하는데 어려움을 겪고 있습니다 /dev/shm.

내 첫 번째 시도는 다음과 같습니다.

sudo dd if=/proc/kcore of=/dev/shm/mem count=1000000

...다음 결과가 표시됩니다.

1000000+0 records in
1000000+0 records out
512000000 bytes (512 MB, 488 MiB) copied, 0,661147 s, 774 MB/s

그러나 한 번에 몇 바이트를 읽고 써야 하는지 지정하기 위해 플래그를 dd사용하여 실행하면 결과가 크게 변경됩니다.bs

sudo dd if=/proc/kcore of=/dev/shm/mem bs=$((1024*1024)) count=512

...결과는 다음과 같습니다.

512+0 records in
512+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 0,166003 s, 3,2 GB/s

작은 데이터 덩어리를 여러 번(첫 번째 시도에서와 같이 1.000.000배) 읽고 쓰는 것에 비해 매우 큰 데이터 덩어리(512바이트)를 읽고 쓰는 것이 훨씬 더 빠른 이유는 무엇입니까?

소스로 사용하여 /dev/shm벤치마킹 하는 것이 "합법적"입니까 ? 아니면 어떻게든 벤치마크를 제한하고 있습니까?dd/proc/kcore/proc/kcore

성능이 얼마나 되는지 정확히 알 수는 없지만정말필요하지만 1GB/s 이상의 읽기 및 쓰기 속도를 원합니다(내가 읽거나 쓰는 최대 데이터 양은 1GB이고 1초 이내에 완료하고 싶기 때문입니다).


나는 주로 다음을 통해 큰 배열(50MB~1GB)을 저장하고 있습니다.HDF5.

관련 정보