软件缓存是不是应该提高 NUMA 机器上的性能

Posted

技术标签:

【中文标题】软件缓存是不是应该提高 NUMA 机器上的性能【英文标题】:Should software cache improve performance on a NUMA machine软件缓存是否应该提高 NUMA 机器上的性能 【发布时间】:2014-05-14 03:44:33 【问题描述】:

由于 NUMA 机器没有本地缓存​​,软件缓存实现会提高需要访问远程内存的任务的性能吗?

【问题讨论】:

【参考方案1】:

一些 NUMA 机器确实有本地缓存​​。如果您有一个多插槽 Opteron 或 Xeon 系统,每个插槽都是一个具有多级缓存的 NUMA 域,有些在内核之间共享,有些则不共享。至少对于 Nehalem 以来的英特尔芯片来说,所有这些缓存都可以存储远程内存引用。这有利于 2-8 个套接字的性能,但对于构​​建在更长距离缓存一致互连(如 NumaConnect 或 SGI NUMALink)上的大型系统来说,这仍然是一个优势。

话虽如此,如果您被困在一个不连贯的系统上,您需要缩小一堆其他参数的范围,然后才能做出是/否的答案。您的软件一致性协议中每个状态转换的成本是多少?对于您关注的应用程序的跟踪,这些转换多久发生一次?如果转换成本足够低或线路驻留时间足够长,那么肯定会有所帮助……但这取决于实现、底层架构和应用程序本身的行为。

这里有一个小组正在试验一些相关的性能问题:http://www.lfbs.rwth-aachen.de/content/17.html。您可能还会发现一些与 Playstation 3 中使用的 Cell BE 架构相关的有趣工作,例如:http://researcher.ibm.com/files/us-alexe/paper-gonzalez-pact08.pdf。

【讨论】:

以上是关于软件缓存是不是应该提高 NUMA 机器上的性能的主要内容,如果未能解决你的问题,请参考以下文章

Intel Xeon 上的 NUMA:内存区域是不是必须具有相同的大小?

软件测试知识点之数据库压力测试方法小结

软件RAID 0

Linux上MySQL优化提升性能 哪些可以优化的关闭NUMA特性

如何在 NUMA 机器上的不同节点上分配数组的一部分?

前端性能优化 浏览器缓存技术