NUMAノード数を調べる方法と、NUMA対応システムかを確認する手順を紹介します。
概要
利用しているマシンのNUMAノード数がいくつか調べたい、またはNUMAモードが有効になっているのか確認したい場合があります。
この記事ではCoreinfoを利用してNUMAノード数とNUMA対応システム化を確認する手順を紹介します。
事前準備
Coreinfoを導入します。ダウンロード手順は
こちらの記事を参照してください。
手順
コマンドプロンプト、またはPowershellで以下のコマンドを実行します。
補足
初回起動時には下図のLincence Agreement のダイアログが表示されます。
実行すると以下の結果が表示されます。(システムによって結果は違うため、一例になります)
Coreinfo v3.5 - Dump information on system CPU and memory topology
Copyright (C) 2008-2020 Mark Russinovich
Sysinternals - www.sysinternals.com
Intel(R) Xeon(R) W-2125 CPU @ 4.00GHz
Intel64 Family 6 Model 85 Stepping 4, GenuineIntel
Microcode signature: 02006A08
HTT * Hyperthreading enabled
HYPERVISOR * Hypervisor is present
VMX - Supports Intel hardware-assisted virtualization
SVM - Supports AMD hardware-assisted virtualization
X64 * Supports 64-bit mode
SMX - Supports Intel trusted execution
SKINIT - Supports AMD SKINIT
NX * Supports no-execute page protection
SMEP * Supports Supervisor Mode Execution Prevention
SMAP * Supports Supervisor Mode Access Prevention
PAGE1GB * Supports 1 GB large pages
PAE * Supports > 32-bit physical addresses
PAT * Supports Page Attribute Table
PSE * Supports 4 MB pages
PSE36 * Supports > 32-bit address 4 MB pages
PGE * Supports global bit in page tables
SS * Supports bus snooping for cache operations
VME * Supports Virtual-8086 mode
RDWRFSGSBASE * Supports direct GS/FS base access
FPU * Implements i387 floating point instructions
MMX * Supports MMX instruction set
MMXEXT - Implements AMD MMX extensions
3DNOW - Supports 3DNow! instructions
3DNOWEXT - Supports 3DNow! extension instructions
SSE * Supports Streaming SIMD Extensions
SSE2 * Supports Streaming SIMD Extensions 2
SSE3 * Supports Streaming SIMD Extensions 3
SSSE3 * Supports Supplemental SIMD Extensions 3
SSE4a - Supports Streaming SIMDR Extensions 4a
SSE4.1 * Supports Streaming SIMD Extensions 4.1
SSE4.2 * Supports Streaming SIMD Extensions 4.2
AES * Supports AES extensions
AVX * Supports AVX instruction extensions
FMA * Supports FMA extensions using YMM state
MSR * Implements RDMSR/WRMSR instructions
MTRR * Supports Memory Type Range Registers
XSAVE * Supports XSAVE/XRSTOR instructions
OSXSAVE * Supports XSETBV/XGETBV instructions
RDRAND * Supports RDRAND instruction
RDSEED * Supports RDSEED instruction
CMOV * Supports CMOVcc instruction
CLFSH * Supports CLFLUSH instruction
CX8 * Supports compare and exchange 8-byte instructions
CX16 * Supports CMPXCHG16B instruction
BMI1 * Supports bit manipulation extensions 1
BMI2 * Supports bit manipulation extensions 2
ADX * Supports ADCX/ADOX instructions
DCA - Supports prefetch from memory-mapped device
F16C * Supports half-precision instruction
FXSR * Supports FXSAVE/FXSTOR instructions
FFXSR - Supports optimized FXSAVE/FSRSTOR instruction
MONITOR - Supports MONITOR and MWAIT instructions
MOVBE * Supports MOVBE instruction
ERMSB * Supports Enhanced REP MOVSB/STOSB
PCLMULDQ * Supports PCLMULDQ instruction
POPCNT * Supports POPCNT instruction
LZCNT * Supports LZCNT instruction
SEP * Supports fast system call instructions
LAHF-SAHF * Supports LAHF/SAHF instructions in 64-bit mode
HLE * Supports Hardware Lock Elision instructions
RTM * Supports Restricted Transactional Memory instructions
DE * Supports I/O breakpoints including CR4.DE
DTES64 * Can write history of 64-bit branch addresses
DS * Implements memory-resident debug buffer
DS-CPL - Supports Debug Store feature with CPL
PCID * Supports PCIDs and settable CR4.PCIDE
INVPCID * Supports INVPCID instruction
PDCM * Supports Performance Capabilities MSR
RDTSCP * Supports RDTSCP instruction
TSC * Supports RDTSC instruction
TSC-DEADLINE - Local APIC supports one-shot deadline timer
TSC-INVARIANT * TSC runs at constant rate
xTPR * Supports disabling task priority messages
EIST * Supports Enhanced Intel Speedstep
ACPI * Implements MSR for power management
TM * Implements thermal monitor circuitry
TM2 * Implements Thermal Monitor 2 control
APIC * Implements software-accessible local APIC
x2APIC - Supports x2APIC
CNXT-ID - L1 data cache mode adaptive or BIOS
MCE * Supports Machine Check, INT18 and CR4.MCE
MCA * Implements Machine Check Architecture
PBE * Supports use of FERR#/PBE# pin
PSN - Implements 96-bit processor serial number
PREFETCHW * Supports PREFETCHW instruction
Maximum implemented CPUID leaves: 00000016 (Basic), 80000008 (Extended).
Maximum implemented address width: 48 bits (virtual), 46 bits (physical).
Processor signature: 00050654
Logical to Physical Processor Map:
**------ Physical Processor 0 (Hyperthreaded)
--**---- Physical Processor 1 (Hyperthreaded)
----**-- Physical Processor 2 (Hyperthreaded)
------** Physical Processor 3 (Hyperthreaded)
Logical Processor to Socket Map:
******** Socket 0
Logical Processor to NUMA Node Map:
******** NUMA Node 0
No NUMA nodes.
Logical Processor to Cache Map:
**------ Data Cache 0, Level 1, 32 KB, Assoc 8, LineSize 64
**------ Instruction Cache 0, Level 1, 32 KB, Assoc 8, LineSize 64
**------ Unified Cache 0, Level 2, 1 MB, Assoc 16, LineSize 64
******** Unified Cache 1, Level 3, 8 MB, Assoc 11, LineSize 64
--**---- Data Cache 1, Level 1, 32 KB, Assoc 8, LineSize 64
--**---- Instruction Cache 1, Level 1, 32 KB, Assoc 8, LineSize 64
--**---- Unified Cache 2, Level 2, 1 MB, Assoc 16, LineSize 64
----**-- Data Cache 2, Level 1, 32 KB, Assoc 8, LineSize 64
----**-- Instruction Cache 2, Level 1, 32 KB, Assoc 8, LineSize 64
----**-- Unified Cache 3, Level 2, 1 MB, Assoc 16, LineSize 64
------** Data Cache 3, Level 1, 32 KB, Assoc 8, LineSize 64
------** Instruction Cache 3, Level 1, 32 KB, Assoc 8, LineSize 64
------** Unified Cache 4, Level 2, 1 MB, Assoc 16, LineSize 64
Logical Processor to Group Map:
******** Group 0
実行結果の中の
Logical Processor to NUMA Node Map:
の欄を確認します。上記の結果では、
NUMA Node 0
と表示されており、NUMAノード数は0で、
NUMAに対応していないシステムであることが確認できます。
他のマシンの結果
他のマシンでも実行してみます。
サーバーとして利用しているマシンですが、NUMAのノード数は0です。
4CPUを割り当てたHyper-Vの仮想マシンですが、NUMAのノード数は0です。
NUMAノードを有効にするには
調査した結果、基本的にデフォルトの状態では、NUMAモードになっておらず、NUMAノード数は0であることがわかりました。
NUMAモードを有効にするには次の設定にする必要があるかと思われます。
また、基本的にNUMAノード数はソケット数と同数になることが多いようです。
デュアルソケット以上のマシンの場合
BIOSでNUMAのモードを有効にすると、NUMAノードが利用できるようになります。NUMAノードは通常はソケット数と一致します。
シングルソケットのマシンの場合
通常は1ソケットで1NUMAノードとなりますが、Sub NUMA Clustering を有効にすることで、CPU内部のコアを分割して、1ソケットで 2ソケットCPUと同じ動作にするモードがあります。BIOSでSub NUMA Clustering を有効にし、NUMAの設定、メモリアクセス設定をNUMAのモードにすることでNUMAが有効になります。
なお、Sub NUMA Clusteringが利用できるCPUは Skylake-SPと呼ばれる "Xeonスケーラブル・プロセッサー"が対応しています。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2021-09-17
作成日: 2021-01-30