NUMA
マルチソケット構成で、各CPUが「自分専用」のRAMを持つ方式。ローカルメモリへのアクセスは、ソケット間のインターコネクトを越えるアクセスより速い。正式名称はNon-Uniform Memory Access(不均一メモリアクセス)。
典型例はデュアルソケットのXeon/EPYCサーバーだ。LinuxではnumactlでNUMAの割り当てを管理する。AMDのZenアーキテクチャは、1ソケットの内部でもNUMAになる(チップレットのCCDがそれぞれ「近い」メモリを持つ)。データベースサーバーや高性能アプリは、スレッドをソケットに固定しローカルメモリを確保しないと、性能が大きく落ちる。perf stat -e mem_load_uops_retired:l3_missでNUMAのトラフィックを確認できる。Kubernetesにはコンテナ内でこれを扱うtopologyManagerがある。