23.2. 系统拓扑类型


在现代计算中,单个 CPU 的概念具有误导性,因为大多数现代系统有多个处理器。系统的拓扑是这些处理器互相连接并与其他系统资源的连接的方式。

这会影响系统和应用程序性能,以及对系统的调优考虑。

以下是现代计算中使用的两种主要拓扑类型:

对称多进程 (SMP) 拓扑
SMP 拓扑允许所有处理器在相同时间内访问内存。SMP 系统中序列化内存访问创建不再可接受的扩展限制。因此,所有现代服务器系统都是 NUMA 机器。
非统一内存访问 (NUMA) 拓扑

NUMA 拓扑是比 SMP 拓扑更久而开发的。在 NUMA 系统中,多个处理器通过插槽被物理分组。每个套接字都有一个专用的内存区域,并且该套接字上的处理器对该内存具有本地访问权限。套接字、其内存以及关联的处理器共同构成了所谓的节点。同一节点上的处理器能够快速访问该节点的内存区,而对其他节点的内存区的访问速度较慢。

因此,访问非本地内存时会出现性能损失。因此,具有 NUMA 拓扑的系统上性能敏感的应用程序应该访问本地内存。它们还应尽可能避免访问远程内存以确保最佳性能。

对性能敏感的多线程应用程序可能会被配置为在特定 NUMA 节点上运行,而不是在特定处理器上运行。这是否适当地取决于您的系统和应用程序的要求。

  • 如果多个应用程序线程访问同一缓存的数据,则将这些线程配置为在同一处理器上运行。
  • 如果多个访问和缓存不同数据在同一处理器上运行的线程,每个线程可能会驱除由之前线程访问的缓存数据。这意味着,每个线程"misses"缓存,浪费执行时间从内存中获取数据并在缓存中替换。使用 perf 工具检查是否有过多的缓存未命中。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部