내 컴퓨터의 사양은 다음과 같습니다
- 2 인텔 CPU x86_64
- 총 메모리 8GB(CPU당 4GB)
- 운영 체제는 Rocky Linux 9입니다.
memmap
grub의 매개변수를 사용하여 CPU당 1GB의 메모리를 예약 하고 싶습니다 . 확인 dmesg
하고 /proc/meminfo
사용해 보기도 했는데요 numaclt -H
. 하지만 각 CPU의 메모리 물리적 주소를 찾을 수 없습니다.
각 CPU 로컬 메모리의 물리적 주소를 얻는 방법은 무엇입니까?
답변1
특정 CPU 코어에서 애플리케이션을 실행하고 특정 리소스(메모리) 세트를 할당하려는 경우 다음을 수행할 수 있습니다.
#launch google-chrome on CPU core 0
taskset 0x1 google-chrome
# 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
운영 체제 추상화를 통해 하드웨어와 상호 작용하는 것은 우리가 수행/실행 취소하는 작업을 정확히 알지 않는 한 항상 좋은 생각입니다.