NUMAノード
互いに高速にアクセスできるCPUコアとメモリのまとまり。マルチソケットサーバーやAMDのチップレットCPUには複数あり、ノードをまたぐアクセスは遅延が5割から2倍ほど増える。
Linuxではnumactl --hardwareでトポロジを、numastatでノード間トラフィックを確認できる。チューニングの定石は、プロセスを1つのNUMAノードに固定する(numactl --cpunodebind=0 --membind=0)ことで、安定した低遅延が得られる。JVM、PostgreSQL、MySQLにはNUMA対応のアロケータがある。クラウドのVMではハイパーバイザがトポロジを隠し、VMからはフラットなメモリに見えることが多いが、実際の遅延にはばらつきがある。最近のAWSは大型インスタンスでトポロジを公開している。AMD EPYCは1ソケットあたり4〜8個、Intel Xeonは1〜2個のNUMAノードを持つ(チップレット構成とモノリシック/メッシュ構成の違い)。