Linux的numactl
转载:https://www.cnblogs.com/tcicy/p/10191505.html#top
NUMA的取舍与优化设置
注意:numactl和numastat无法查看某个进程当前用的什么内存策略!!
在os层numa关闭时,打开bios层的numa会影响性能,QPS会下降15-30%;
在bios层面numa关闭时,无论os层面的numa是否打开,都不会影响性能。
默认系统没有自带numactl,需要安装numactl:
#yum install numactl -y#numastat 等同于 cat /sys/devices/system/node/node0/numastat ,numactl包里包含numastat
在/sys/devices/system/node/文件夹中记录系统中的所有内存节点的相关详细信息。
#numactl --hardware 列举系统上的NUMA节点,如果available大于0表示开启了numa
#numactl --show 查看绑定信息
Redhat或者Centos系统中可以通过命令判断bios层是否开启numa
# grep -i numa /var/log/dmesg No NUMA configuration found
说明numa为disable,如果不是上面内容说明numa为enable,例如显示:
NUMA: Using 30 for the hash shift.
可以通过lscpu命令查看机器的NUMA拓扑结构。
root@mongo_mongo_16 tmp]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 2 On-line CPU(s) list: 0,1 Thread(s) per core: 1 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 45 Model name: Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz Stepping: 7 CPU MHz: 2699.148 BogoMIPS: 5400.00 Hypervisor vendor: VMware Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 20480K NUMA node0 CPU(s): 0,1 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm arat tsc_adjust
当发现numa_miss数值比较高时,说明需要对分配策略进行调整。例如将指定进程关联绑定到指定的CPU上,从而提高内存命中率。
(免费订阅,永久学习)学习地址: Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化/高性能专家-学习视频教程-腾讯课堂
更多DPDK相关学习资料有需要的可以自行报名学习,免费订阅,永久学习,或点击这里加