読者です 読者をやめる 読者になる 読者になる

NUMAアーキテクチャ

今までの SMP(Symmetric Multiprocessing) 構成の場合、CPU が全てのメモリに均一にアクセスできた。
しかし CPU の搭載数が増えるに従い、増えた CPU によるメモリへのアクセス待ちが問題となっていった。
またメモリ参照には局所性があるから、全ての CPU が「全てのメモリに均一にアクセスできる」としても結局ごく限られた範囲へのアクセスとして競合してしまいボトルネックとなってしまうことがあった。

このため CPU とメモリをノードという単位にまとめ、これらの単位を高速にアクセスできるようにし、結果としてノードを超えたアクセスが高コストになることで、各 CPU は自ノード内のメモリを利用するようになり、メモリアクセスの競合を減らすことができるようになった。これを NUMA(Non-Uniform Memory Access) アーキテクチャと呼ぶ。今までの SMP 構成と違い全てのメモリに均一にアクセスでできるわけではなく、自ノードのメモリは使いやすく、他ノードのメモリは高コストとなる方式。結果としてメモリの局所性がノードごとに分散されることで、全体のアクセス性能を高めようというもの。NUMA アーキテクチャ自体は他ノードへのメモリアクセスができる必要があるが、上位のレイヤーがこれを抑制する設定で運用する場合がある。この場合プロセスが使えるのはノード内のメモリに限られるため、大容量のメモリを必要とするアプリケーションの場合に問題が生じる。

つまり他ノードのメモリを使う代わりにスワップしてしまうことがあり、Swap Insanity と呼ばれている。
これを解消するにはメモリ確保ポリシーを変更する必要があり、例えば MySQL なら numactl --interleave などとする。SQL Server なら 2005 から対応している。

参考:
【メモ】MySQLでのswap発生とNUMAアーキテクチャ - FAT47の底辺インフラ議事録
SQL Server での NUMA のサポート状況
Non-Uniform Memory Access について
SQL Server と NUMA | SE の雑記
SQL Server 2005でガラッと変わった個所とは?(1/4) − @IT
MySQL と NUMA アーキテクチャと Swap Insanity | COLOPL Engineers' Blog | 株式会社コロプラ【スマートフォンゲーム&位置ゲー】
ITアーキテクト 心得かるた - 第10回 ぬ・・・NUMAアーキ 進化のカギは 遅延克服:ITpro
NUMA シナリオ
NUMAの選択 | 進め!インフラエンジニア
マルチプロセッサ用リアルタイムOSの解説 » ハードウェアアーキテクチャから見たマルチプロセッサの分類
NUMA:理論と実践 | SourceForge.JP Magazine
Insider's Computer Dictionary [NUMA] − @IT
マルチスレッド開発ガイド: 3.5 NUMA 向けのアプリケーションの最適化 | iSUS

仮想 NUMA トポロジは、ハードウェア バージョン 8 仮想マシンに使用でき、仮想 CPU の数が 8 個を超えた場合にデフォルトで有効化されます。
VMware vSphere 5.1