x86_64/Linux에서 tmpfs 및 NUMA를 통해 공유 메모리 사용

x86_64/Linux에서 tmpfs 및 NUMA를 통해 공유 메모리 사용

내가 하고 싶은 일은 다음과 같습니다. tmpfs에 파일을 넣고 파일 전체(모든 페이지)가 동일한 NUMA 노드에 있는지 확인합니다. 첫째, 저는 이것이 사소한 일이라고 생각했습니다. mmap()tmpfs 파일을 MAP_SHARED사용하여 mbind()원하는 노드에 연결한 다음 복사하기만 하면 됩니다. 그러나 mbind()의 매뉴얼 페이지에서는 이 접근 방식을 명시적으로 제외합니다.

NUMA policy is not supported on a memory-mapped file range 
that was mapped with the MAP_SHARED flag.

블리미! 매뉴얼 mbind()페이지에는 공유 매핑의 경우 프로세스 메모리 정책( 사용)에만 의존할 수 있다고 나와 있습니다 set_mempolicy(). 그러나 이는 이상적인 것과는 거리가 멀습니다. 저는 다중 스레드 애플리케이션을 실행하고 있으며 어떤 스레드가 복사를 수행하는지 신경쓰지 않고 싶습니다. 차라리 메모리 정책이 tmpfs에 묶여 있었으면 좋겠습니다.파일대신 내 인생을 더 쉽게 만들어줍니다.

이 문제를 해결하는 방법에 대한 아이디어가 있는 사람이 있나요?

관련 정보