排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
我们的内存花了冤枉钱了吗?
我们的内存花了冤枉钱了吗?
白鳝的洞穴
2020-09-17
2236
现在我们大量的使用XEON的服务器,随着DIMM价格的下降,配置几个TB的内存也不是一件很奢侈的事情了。如果认真的对XEON的架构进行分析,我们会发现,哪怕就是配点内存这点小事,也是到处都是坑的。可能有朋友会说了,配个内存算啥事啊,现在X86的内存这么便宜,哪怕多买一点,顶多了就浪费点小钱而已。今天老白就和大家聊聊内存配置的那些道道。
第一次了解内存条不能瞎配是几年前搞数据库一体机的时候,当时一体机的压测性能到了某个水准就再也上不去了,在数据库层面,存储层面做了大量的优化,效果还是不明显。后来INTEL的朋友提醒我们,我们的服务器内存配置为512G,可能不平衡,改为384G试试。当时我还觉得奇怪,减少内存条性能还能提高?不过重新调整内存条后,TPCC指标确实有了10%左右的提升。
前阵子老白讨论NUMA的时候也讨论过,CPU和内存是通过内存控制器的通道来交换数据的,而DIMM内存是一条条的插到内存插槽里的,而内存插槽是连接到内存控制器上的。
比如说skylake CPU支持2个内存控制器,每个内存控制器有3个通道,每个通道可以插两条内存条。只有当内存是按照平衡的方式插入到内存插槽中的时候,服务器的内存访问性能才能达到最佳。下面是一组平衡插法的示意图:
其中5个内存条是无法达到平衡的,后面有些图省略掉了,7-11根内存条也是无法达到平衡的,12根内存条可以达到平衡。如果内存不平衡,对性能有多大影响呢?下面是一组数据:
这是8DIMM插槽的单路服务器的数据(大家注意,不是skylake是早期的CPU的数据),可以看出插2根内存条的时候,内存带宽只有35%的理论带宽,4根时候可以达到67%,6根的时候(满配)可以达到接近理论带宽,8根的时候效果最差,只有34%:
这是两路服务器(12 DIMM插槽)的数据:
从上面的数据可以看出,按照最平衡的模式配置内存,可以达到接近100%的访问带宽,而最差的情况只有1/3的访问带宽。我们配置内存的时候喜欢按照16的倍数,比如256G/512G/1TB,而从上面的测试数据看,情况十分糟糕。如果CPU是6个内存通道的,那么性能最佳的是6的倍数配置的内存条,而按照16条内存条配置的系统性能最差。我们经常看到配置了1TB内存的两路服务器,其内存带宽只能达到34%。
下面是DELL公司针对SKYLAKE的一个测试数据:
从上面的图上我们可以看出,针对任何一种SKYLAKE CPU,12条内存条和16条内存条的性能差异是相当大的。
当然实际使用的情况并不一定如上述的数据那么糟糕,有可能我们的内存带宽并不需要达到那么高,对于普通的应用来说,平时的影响并不大,不过对于内存数据库等对内存访问要求较高的系统来说,更高的内存带宽对系统性能关系重大。对于某些系统来说,提供足够的内存就可以了,那么也不用特别纠结。不过在我们做一些高性能压测的时候(比如PK数据库一体机的性能),内存平衡带来的TPCC提升是十分明显的。
在土豪家也没有余粮的年代,别在内存上花冤枉钱还是十分必要的。如果你用的是一颗6通道的CPU,那么还是尽可能按每颗CPU 12根内存条去配置内存吧。
数据库
文章转载自
白鳝的洞穴
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨