2つのCPUを持つコンピュータから各CPUのローカルメモリの物理アドレスを取得するにはどうすればよいですか?

2つのCPUを持つコンピュータから各CPUのローカルメモリの物理アドレスを取得するにはどうすればよいですか?

私のコンピュータの仕様は次のとおりです

  • 2 インテル CPU x86_64
  • 合計メモリ8GB(CPUあたり4GB)
  • オペレーティングシステムはRocky Linux 9です。

memmapgrubのパラメータを使用してCPUあたり1 GBのメモリを予約したいと思います。確認し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

オペレーティングシステムの抽象化を介してハードウェアと対話することは、私たちが実行/元に戻すことを正確に知らない限り、常に良い考えです。

関連情報