두 개의 CPU가 있는 컴퓨터에서 각 CPU의 로컬 메모리의 물리적 주소를 얻는 방법은 무엇입니까?

두 개의 CPU가 있는 컴퓨터에서 각 CPU의 로컬 메모리의 물리적 주소를 얻는 방법은 무엇입니까?

내 컴퓨터의 사양은 다음과 같습니다

  • 2 인텔 CPU x86_64
  • 총 메모리 8GB(CPU당 4GB)
  • 운영 체제는 Rocky Linux 9입니다.

memmapgrub의 매개변수를 사용하여 CPU당 1GB의 메모리를 예약 하고 싶습니다 . 확인 dmesg하고 /proc/meminfo사용해 보기도 했는데요 numaclt -H. 하지만 각 CPU의 메모리 물리적 주소를 찾을 수 없습니다.

각 CPU 로컬 메모리의 물리적 주소를 얻는 방법은 무엇입니까?

답변1

특정 CPU 코어에서 애플리케이션을 실행하고 특정 리소스(메모리) 세트를 할당하려는 경우 다음을 수행할 수 있습니다.

작업 세트

#launch google-chrome on CPU core 0
taskset 0x1 google-chrome

그룹 C

# Create a cgroup
mkdir /sys/fs/cgroup/memory/my_cgroup

# Add the process to it
echo $PID > /sys/fs/cgroup/memory/my_cgroup/cgroup.procs

# Set the limit to 100MB
echo $((100 * 1024 * 1024)) > /sys/fs/cgroup/memory/my_cgroup/memory.limit_in_bytes

운영 체제 추상화를 통해 하드웨어와 상호 작용하는 것은 우리가 수행/실행 취소하는 작업을 정확히 알지 않는 한 항상 좋은 생각입니다.

관련 정보