系统拓扑
现代计算机技术,一个“中央”处理单元的观念是误导性的。因为大部分现代化的系统都有多个处理器。这些处理器是如何相互连接的,并且如何连接至其他系统资源——“系统拓扑“会对系统和应用的性能以及系统调节选项产生影响。
现代计算机技术主要运用两种主要拓扑类型
SMP拓扑
SMP(对称多处理器)拓扑允许所有的处理器同时访问内存。然而,由于内存访问权限的共享性和平等性,固然会迫使所有CPU及SMP系统序列化的内存访问权限的局限性增加,目前这种情况不被接受,几乎所有服务器系统都是NUMA(非一致性内存访问)。
NUMA拓扑
相比SMP,NUMA(非一致性内存访问)拓扑是近来开发的。在NUMA系统中,多个处理器分组至一个socket。每个socket都有一个专用内存区,对该内存进行本地访问的服务器统称为一个节点。
同一个节点上的服务器能告诉访问该节点的存储体,但访问其他节点上的存储体就比较慢,因此,访问非本地存储体会造成性能的损失。
考虑性能损失,服务器执行应用程序时,NMUA拓扑结构系统中对性能明爱的应用程序应访问同一个节点的内存,并且尽可能地避免访问任何远程内存。
因此,调节NUMA拓扑结构系统中的应用程序性能时,重要的是要考虑这一应用程序的执行点以及最靠近此执行点的存储体。
在NUMA拓扑结构系统中,/sys
文件系统包含处理器、内存及外围设备连接信息。/sys/devices/system/cpu
目录包含处理器在系统中相互连接的详情。/sys/devices/system/node
目录包含系统中NUMA的节点信息以及节点间的相对距离。