栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

NUMA计算机上的共享库瓶颈

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

NUMA计算机上的共享库瓶颈

该软件所需的共享库仅一次加载到计算机的全局内存中,

据我所知,这是Linux的当前行为。共享库仅加载到一组物理内存,并且仅加载到单个节点上。

然后,由于所有进程都在访问单个节点上的内存,因此系统遇到了通信瓶颈。

如评论中所述,库中的指令应该缓存在每个处理器中,因此只有从缓存中擦除了库中的活动代码(例如,有许多不同的代码在工作)时,才会出现瓶颈。

您应该使用硬件性能计数器(高速缓存未命中,节点间NUMA内存访问计数)来验证您的理论。

在NUMA上具有多个副本的一些数据存储机制,在Linux上称为“复制”。内核,可执行文件或其共享库的代码称为文本。因此,您想要的是“共享库的文本复制”。我认为对于内核代码而言,文本复制更容易。

我能找到2003一些实验补丁做这样的文本复制,如
http://lwn.net/Articles/63512/( [RFC]
[PATCH] NUMA用户页面复制
戴维·汉森,IBM)。该补丁似乎被拒绝了。

此技术的更现代的版本(2007年)是页面缓存的复制:SUSE尼克·皮金(Nick Piggin),http
//lwn.net/Articles/223056/ (
mm:复制的页面缓存
)。也有关于他的方法的介绍:http :
//ondioline.org/~paul/pagecachereplication.pdf。这将起作用,因为所有文件(可执行文件和共享库)都存储在页面缓存中。但是即使对于此补丁,我也无法在当前内核中找到它。

在SGI上,有更多的复制需求(它们比典型的内核开发人员拥有更多的NUMA计算机),因此可能会有一些附加补丁。有NUMA的SGI应用程序调整手册:[http](http://techpubs.sgi.com/library/tpl/cgi-
bin/getdoc.cgi/linux/bks/SGI_Developer/books/LX_86_AppTune/sgi_html/ch05.html)
//techpubs.sgi.com/library/tpl/cgi-
bin/getdoc.cgi/linux/bks/SGI_Developer/books/LX_86_AppTune/sgi_html/ch05.html提到了
dplace
实用程序在“
使用dplace命令 ”一节中。它具有文本复制选项:

-r
:指定应在运行应用程序的一个或多个节点上复制文本。在某些情况下,复制将通过减少对代码进行节点外内存引用的需求来提高性能。复制选项适用于dplace命令放置的所有程序。有关文本复制的更多信息,请参见dplace(5)手册页。复制选项是一个字符串,包含以下一个或多个字符:

l 复制库文本

b 复制二进制(a.out)文本

t 线程循环选项

手动替换(1):http
://techpubs.sgi.com/library/tpl/cgi-
bin/getdoc.cgi?coll=linux&db=man&fname=/usr/share/catman/man1/dplace.1.html

手动放置(5):http
://techpubs.sgi.com/library/tpl/cgi-
bin/getdoc.cgi?coll=linux&db=man&fname=/usr/share/catman/man5/dplace.5.html



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372858.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号