Chinaunix

标题: 讨论关于内核伸缩性的问题 [打印本页]

作者: l4rmbr    时间: 2014-03-29 03:37
标题: 讨论关于内核伸缩性的问题
本帖最后由 l4rmbr 于 2014-03-31 17:12 编辑

随着NUMA架构的发展,越来越大的SMP系统成为现实。
很多内核中深埋的伸缩性问题开始显露,内核开发者也越来越注重对于
伸缩性问题的考虑。

所谓伸缩性(scalability),是指内核的性能随着CPU核心/内存数目等资源的增大而出现回退的现象。
假设资源数目是N,  很多暴露出来的伸缩性问题都是O(N)乃至O(N^2)复杂度的。
当然最理想是O(1)复杂度,即随着N增大,性能保持在一个数量级的变化之内。

引起变化的原因有两方面,一是空间,一是时间。

空间方面,比如增多的内存大小,使某些数据结构消耗也随着增大,进而占据
了固定的宝贵的低端内存(对32位来说),从而使低端内存数量减少,而引起其它重要
内核结构分配减缓甚至失败,进而影响性能。比如描述页框的struct page就是这种情况。

时间方面,比如增多的CPU核心加剧了对全局有限资源的竞争,如锁,从而造成性能的回退。
今天看到的关于对hugetlb页,使用独立的页表锁就是这种情况。http://lwn.net/Articles/568076/

因此想开个贴,把遇到的所有跟伸缩性(scalability)相关的问题/patch/文章等放进来,供大家
讨论和参考。我之后想起来会慢慢补充。大家也可以踊跃讨论哈

=====
文章
hugetlb页使用独立的页表锁,以解决锁竞争
关于内存屏障,rcu, 无锁的伸缩性问题
作者: asuka2001    时间: 2014-03-29 21:59
回复 1# l4rmbr

Scalability techniques
http://lwn.net/Articles/572099/


   
作者: humjb_1983    时间: 2014-03-30 22:37
NUMA下,远程节点访问导致性能下降的问题在很多情况下都会有较大的影响~~,这是个big trouble。
作者: l4rmbr    时间: 2014-03-31 17:12
回复 2# asuka2001


    asuka2001,

谢谢,已加。
作者: l4rmbr    时间: 2014-03-31 17:14
回复 3# humjb_1983

这是个大问题。

开发者们有个numa-sched的patch系列在研究改进这个问题。不过貌似未进入主线。


   
作者: embeddedlwp    时间: 2014-03-31 17:16
回复 5# l4rmbr


automatic numa balancing已经进入主线。


   
作者: l4rmbr    时间: 2014-03-31 17:22
回复 6# embeddedlwp


谢谢纠正!

是在哪个版本的时候加入的呢?

   
作者: embeddedlwp    时间: 2014-03-31 17:24
本帖最后由 embeddedlwp 于 2014-03-31 17:26 编辑

回复 7# l4rmbr


这个得自己查了,呵呵

Mel Gorman先做了个infrastucture, 然后又增强了与sched相关的部分。
   
作者: l4rmbr    时间: 2014-03-31 17:55
回复 8# embeddedlwp

恩。我查了下,在v3.7时整个infrastructure进入。去年底看到的nuam/shed系列应该是在此上对sched的增强。

P.S.  顺便搜到前阵子你提交的跟这个相关的几个patch


   
作者: embeddedlwp    时间: 2014-03-31 18:02
回复 9# l4rmbr

呵呵,没啥意思的patch

   
作者: humjb_1983    时间: 2014-04-01 08:38
呵呵,不知这个automatic numa balancing补丁对性能改善如何?是否有具体的测试数据?
作者: embeddedlwp    时间: 2014-04-01 08:39
回复 11# humjb_1983

那个patch set的cover-letter有的。
作者: humjb_1983    时间: 2014-04-01 08:51
embeddedlwp 发表于 2014-04-01 08:39
回复 11# humjb_1983

那个patch set的cover-letter有的。

呵呵,感谢,学习下~~




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2