乙己说:NUMA 是个啥?

用户头像
再见小飞侠
关注
发布于: 2020 年 05 月 21 日
乙己说:NUMA是个啥?

翻看OpenJDK Java14 版本的发型说明时,发现了下图内容,好奇NUMA是个啥,所以翻找了一下,整理出来作为吹牛的谈资。

https://openjdk.java.net/jeps/345



UMA、NUMA是什么?



首先要说明的是此类技术是针对内存技术演进过程的产物。在从前,X86架构的计算机系统中,CPU对所有内存的访问都是机会同等,不考虑不同内存地址之间的差异,因此CPU访问内存的速度也是一致的,这时称为“统一内存访问”(Uniform Memory Access, UMA)。



随着CPU技术的演进,越来越多的核心被塞进了同一块芯片多核心对于内存带宽的争抢访问却反而成为了瓶颈。未解决该问题,人们将CPU和内存集成在一个单元上,此时就产生了“非统一内存访问”(Non-Uniform Memory Access,NUMA)技术。在核心需要访问内存时,优先访问同一单元上邻近的内存,减少争抢访问速度上得到提升。



据资料显示(https://developer.aliyun.com/article/726120),ZGC在JDK 11版本就支持了NUMA。



ZGC在进行小页面分配时会优先从本地内存分配,而对于中页面和大页面的分配,ZGC则会直接交由操作系统协助找到一块满足大小的空间。



ZGC的该种设计目的在于,小页面存放的是小对象,从本地内存分配速度快,且不会造成内存使用的不平衡。而对于中页面和大页面的内存空间需求,如果也优先产生于本地内存,则极易造成内存使用的不均衡,从而影响性能。



而本次更新是为G1增加了该特性支持。



参考文章:https://developer.aliyun.com/article/726120

发布于: 2020 年 05 月 21 日 阅读数: 40
用户头像

再见小飞侠

关注

小飞侠 2018.07.04 加入

做梦想当架构师

评论

发布
暂无评论
乙己说:NUMA是个啥?