云服务器主板设计
❶ 谁能帮我在中国知网上下篇论文,题目是:从网格计算到云计算
【相似文献】
中国期刊全文数据库 前10条
1 ;文摘[J];计算机工程;1981年04期
2 ;计算机工程与设计1981年1—4期总目录[J];计算机工程与设计;1981年04期
3 Jack B.Dennis;汪成为;;数据流超级计算机[J];计算机工程与设计;1981年01期
4 ;以动态结构来设计超级计算机系统的问题[J];计算机工程;1982年02期
5 ;计算机、机助设计和制造技术的回顾与展望[J];系统工程与电子技术;1983年08期
6 吴朔平;编者按[J];系统工程与电子技术;1984年04期
7 John Walsh ,章鸿猷;“超级计算机”方面的超级竞争[J];系统工程与电子技术;1984年04期
8 John Walsh ,章鸿猷;计算机的结构体系[J];系统工程与电子技术;1984年04期
9 William D.Marbach ,冯昭奎;美日制造超级计算机之争[J];系统工程与电子技术;1984年04期
10 B.L.Buzbee ,R.H.Ewald ,W.J.Worlton ,冯昭奎;日本的超级巨型计算机技术[J];系统工程与电子技术;1984年04期
中国重要会议论文全文数据库 前10条
1 G.E.Murphy;N.D.Whitmore;M.A.Thempson;赵改善;;交互叠前深度偏移[A];美国勘探地球物理学家学会第63届年会论文集[C];1993年
2 Y.M.Chen;X.X.Zhong;挥之;;多处理器超级计算机上各向异性介质的三维多参数地震反演[A];美国勘探地球物理学家学会第64届年会论文集[C];1994年
3 Mehmet C.Tanis;周玉山;;横向变化介质中偏移方法的比较[A];美国勘探地球物理学家学会第66届年会论文集[C];1996年
4 B.Wang;S.W.Cheng;K.Pann;H.L.Deng;李小秋;;用局部优化的简化叠加功率法估算大静校正量[A];美国勘探地球物理学家学会第67届年会论文集[C];1997年
5 王道堂;;新世纪中的计算机应用前景[A];中国土木工程学会第八届年会论文集[C];1998年
6 贺振华;杜少青;;在中小型机上实现地震资料的波动方程叠前深度偏移[A];计算机在地学中的应用国际讨论会论文摘要集[C];1991年
7 黎康保;;用PC机群组构超级计算机[A];西部大开发 科教先行与可持续发展——中国科协2000年学术年会文集[C];2000年
8 吴兵;王铮;;GRIDGIS——基于网格计算的地理信息系统[A];地理教育与学科发展——中国地理学会2002年学术年会论文摘要集[C];2002年
9 续春荣;李玉萍;;地球物理数据未来网络共享模式的构想[A];中国地球物理学会年刊2002——中国地球物理学会第十八届年会论文集[C];2002年
10 怀进鹏;;网络软件技术及其发展[A];第六届全国计算机应用联合学术会议论文集[C];2002年
中国重要报纸全文数据库 前10条
1 成才;每秒运算130万亿次的超级计算机[N];大众科技报;2000年
2 孙玮;VOLVO:用计算机模拟“轿车碰撞”[N];经济参考报;2000年
3 夏华;超级计算机东山再起[N];中国计算机报;2000年
4 本报记者 汪向勇;深度计算的魅力[N];计算机世界;2000年
5 记者 吴仲国;日将建立超高速信息处理系统[N];科技日报;2000年
6 ;将制造每秒一百万亿次运算的超级计算机[N];科技日报;2000年
7 刘军;全球超级计算机竞争处于白热化[N];科技日报;2000年
8 记者 张可喜;62台超级电脑联网建造信息处理系统[N];新华每日电讯;2000年
9 记者 刘军;超级计算机竞争白热化[N];新华每日电讯;2000年
10 记者 刘腾;基因研究又遇难题[N];中华工商时报;2000年
中国博士学位论文全文数据库 前10条
1 赵东;网格计算环境中若干关键技术的研究[D];电子科技大学;2003年
2 任明;分布式城市空间信息系统的关键技术研究与实现[D];华东师范大学;2003年
3 刘泉;网络制造环境下产权保护与信息安全的若干基本理论及关键技术研究[D];武汉理工大学;2004年
4 陈华钧;Web语义查询与推理研究[D];浙江大学;2004年
5 许智宏;关于提高网格计算性能和服务质量的几点研究[D];天津大学;2004年
6 唐家奎;基于MODIS数据气溶胶反演建模与网格计算中间件研究[D];中国科学院研究生院(遥感应用研究所);2005年
7 方娟;基于移动代理的网格资源监控技术的研究[D];北京工业大学;2005年
8 王剑秦;遥感数据处理网格节点的研究[D];中国科学院研究生院(遥感应用研究所);2005年
9 刘炜;基于网格的面向Agent软件分析与设计建模方法及环境研究[D];上海大学;2005年
10 魏洪涛;基于网格计算的仿真任务管理与调度方法研究[D];国防科学技术大学;2005年
中国硕士学位论文全文数据库 前10条
1 陈加兵;罗源湾海洋环境信息系统设计及其水环境评价[D];福建师范大学;2002年
2 周晔;POVPE中软件复用性研究及类库子系统的实现[D];中国人民解放军信息工程大学;2002年
3 郭同庆;多段翼型粘性绕流N-S方程计算[D];南京航空航天大学;2002年
4 孙洪伟;深基坑开挖工程中参数辨识的并行计算[D];大连理工大学;2002年
5 张红岩;羊童贾尔斯[D];辽宁师范大学;2002年
6 丁浩;交通流预测与配流的研究[D];大连理工大学;2003年
7 杨文泉;网络拓扑发现技术[D];南京师范大学;2003年
8 黄河;基于移动Agent的网格资源发现与监控模型的研究[D];北京工业大学;2003年
9 王晓东;基于PPC750的通用服务器主板设计及其信号完整性分析[D];哈尔滨工程大学;2003年
10 李爽;地球科学数据网格及其对地理科学的影响[D];河南大学;2003年
❷ AMD EPYC的模块化和NUMA之路
看起来似乎有强行把芯片设计和数据中心建设拉到一起尬聊的感觉,但世间也没有那么多的一见如故,一些有意义的讨论未尝不是从尬聊开始的。
就我个人而言,今年已经多次在关于数据中心的文章和(线上)分享中提到AMD:“从1月29日开始到2月6日,腾讯会议每天都在进行资源扩容,日均扩容云主机接近1.5万台,8天总共扩容超过10万台云主机,共涉及超百万核的计算资源投入,全部由腾讯云自研的服务器星星海提供支撑。”这款服务器基于AMD去年8月发布的代号Rome(罗马)的第二代EPYC处理器,最大的特点就是核多——双路配置再算上超线程,一台采用腾讯云定制版EPYC处理器的星星海服务器可以为云服务器提供多达180个核——也就是说,这100万核服务器资源,“只”需要不到6000台该款自研服务器即可满足。
腾讯云星星海SA2服务器采用2U高度结合类似远程散热片(remote heat-sink)的设计,配合6个60mm风扇,据称可以支持2个300W级别的CPU(AMD第二代EPYC处理器公开版本最高TDP为280W)
实际上,官方名称为AMD EPYC 7002系列的第二代EPYC处理器最多能提供64个核芯、128个线程,腾讯云定制版本选择了48核芯(96线程)而已。至少在CPU的核数(core count)上,AMD给Intel(英特尔,昵称“大英”)造成了很大的压力。上个月英特尔发布了代号为Cooper Lake的第三代至强可扩展处理器(Xeon Scalable Processor,XSP),主打四路和八路市场,四路配置可提供112核芯224线程,核数上堪与双路EPYC 7002系列抗衡,为10nm制程的Ice Lake争取时间。
摩尔定律难以延续的后果就是CPU的功耗持续攀升,第一代至强可扩展处理器(公开版)里TDP最高的205W,到第三代已是寻常,250W算是克制——毕竟要考虑四路的散热需求
话说上一次AMD搞得大英如此狼狈,还要追溯到本世纪初的64位路线之争。众所周知,英特尔是x86及其生态(特别是软件生态)的缔造者,属于“亲妈”级别,AMD充其量是个“后妈”。但是,x86几十年的发展史证明,“亲妈”未必就比“后妈”更了解孩子的发展潜力。也可以前一阵大火的剧集《隐秘的角落》为例,看完就会发现,对于朱朝阳的隐藏能力,后妈的认知似乎先于亲妈。
Cooper Lake:你看我还有机会吗?
简单的说,Intel建立发展x86生态,AMD坚定捍卫x86路线——不断改造作为生态核心的x86处理器,焕颜新生
盛衰无常:架构与制程的双簧
虽然已经在过去十年中逐渐沦为爱好者口中的“牙膏厂”,但在历史上,英特尔一直不乏创新精神。对待x86的态度可以算是这种精神的一个体现,起码在进入64位时代之前,英特尔其实不太瞧得上x86,总觉得这个娃太low——可能是亲妈更了解孕育过程中的种种先天不足吧——几次三番地在重大的转折点,想要“与时俱进”,重起炉灶,带给用户“船新体验”。反而是AMD屡屡在关键时刻出来捍卫x86,通过翻新加盖来维持其生命力。
64位是关键的转折点。上世纪九十年代末,还是32位的x86刚“插足”服务器市场不久,英特尔选择与惠普(HP)联手开发基于IA-64架构的Itanium(安腾)作为接班人,与已经64位了的RISC阵营大佬们对抗。然而,AMD认为x86还可以抢救一下,决定通过64位扩展来“续命”,并在2003年4月发布首款64位x86处理器Opteron,两年后又把x86(-64)带入多核时代。
此时,英特尔已经在IA-64的路上走了十多年。时过境迁,当初设定的目标并没有实现,而x86扩展到64位和多核之后,不仅软件和应用的生态系统得到了完整的继承,性能也完全可以一战。用户用脚投票,大英不得不从。
第二代EPYC处理器发布会上,Google出示2008年7月9日上线的其第100万台服务器的照片,追诉与AMD的革命友情……还是台四路服务器
英特尔痛定思痛,决定用架构和制程构筑双保险,在2007年提出了Tick-Tock(取自于时钟的“嘀-嗒”周期)量产模式,即先通过制程升级将芯片面积缩小,是为Tick;再基于操练纯熟的制程改用新的微架构,是为Tock。当时的英特尔工厂在技术和产能上都占据明显优势,只要架构上回到正轨,左右手组合拳一出,产量受限的AMD哪里支撑得住?在2008年推出Nehalem微架构之后,英特尔终于夺回主动权。
在英特尔施加的强大压力下,AMD在处理器架构上也犯了错误,2011年推出的Bulldozer(推土机)架构采用了即使现在看来也过于激进的模块化设计。随着2012年英特尔开启至强E5时代,AMD在节节失利后不得不退出服务器市场,上一个巅峰期彻底结束。
有道是:福兮祸所依,祸兮福所伏。先贤曾经曰过:纵有架构、制程双保险,奈何CEO是单点。2016年英特尔推出最后一代至强E5/E7(v4),这是英特尔首批采用14nm制程的服务器CPU,同时也宣告了Tick-Tock模式的终结,改用Process–Architecture–Optimization (制程-架构-优化)的三步走模式。
在这个可以简称为PAO的模式里,虽然仍是先制程、后架构的节奏,但新加入的优化不管是针对两者中的哪一个还是兼而有之,都起到了拉长制程换代周期的效果。第三代至强可扩展处理器已经是第四波采用14nm制程的服务器CPU,14nm后面的“+”都数不清楚有几个了——还好预计年底发布的Ice Lake将终止这个“土拨鼠之日”式的制程循环。
架构层面上,从代号Skylake的初代至强可扩展处理器开始,由环形总线改为6×6的2D-mesh,然后持续“优化”。在架构的角度,Mesh和环形总线都属于所谓传统的单片(Monolithic)式架构,优点是整体性好,涉及到I/O的性能比较有保证;缺点是对制程不太友好,随着规模的扩大,譬如核数和Cache的增加,良率上的挑战很大,高端产品的成本下不来,这对于追求高核数的云计算服务提供商显然不是个好消息。
至强E5/E7 v4的四环(2组双向环形总线)与至强SP的6×6 Mesh架构
关键时刻,又是沉寂多年的AMD挺身而出,接盘Tick-Tock,以自己的方式“维护”摩尔定律。
这个方式,就是模块化。
MCM:同构对等模块化的利与弊
先简单回顾一下AMD之前的模块化设计为什么会失败。 Bulldozer架构的模块化设计,建立在AMD对未来应用趋势的不靠谱假设上,即整数(Integer,INT)运算将占据绝对主导地位,结论是增加整数运算单元,减少浮点(Floating Point,FP)运算单元。 于是,Bulldozer架构很“鸡贼”的采用了两个(具有完整整数运算单元的)核芯共用一个浮点运算单元的模块化设计,两个模块就可以提供4个核芯(但只有2个浮点运算单元),6核以此类推。
模块化本身并没有错,Intel Nehalem的模块化设计就很成功。Bulldozer错在“拆东墙补西墙”,结果连补强都算不上
不用放马后炮,这也是一个妄揣用意(用户意志)的行为。即使是在AI大行其道的今天,第二代英特尔至强可扩展处理器已经支持INT8加速推理运算,也不能和通常意义上CPU的整数运算划等号。贸然押宝,错了当然怪不得别人。
不难看出,Bulldozer的模块化,与之前Intel Nehalem架构的模块化设计,只限于架构层面,并不是为制程考虑——CPU不论几个模块多少核,都是作为一个整体(die)来制造的,毕竟十年前制程还没到瓶颈。
然而,到了AMD以代号Naples的(第一代)EPYC处理器重返服务器市场的2017年,摩尔定律放缓的迹象已很明显。同样的14nm(可能还没有英特尔的先进)制程,AMD如何以更低的成本提供更多的核芯?
EPYC系列处理器基于AMD的Zen系列架构,从Zen、Zen+到Zen 2,以及规划中的Zen 3的发展路线,有点像前面提到的Tick-Tock:开发一个良好的基础然后交替演进,不断优化。
与先辈们不同,Zen系列的模块化明显侧重于解决制程面对的挑战,即芯片在物理上被切割为多个die(比较小的芯片更容易制造,良率有保证,有利于降低成本),通过Infinity Fabric(IF)互连为一个整体,所以每个die就是一个模块,但不一定是模块化设计的最小单位。
第一代EPYC处理器的4个die及Infinity Fabric示意
还是从初代EPYC处理器所采用的Zen架构说起。Zen确立了该系列计算单元模块化的最小单位CCX(Core Complex,核芯复合体),每个CCX包括4个Zen核芯(Core),以及8 MiB共享L3 Cache,每核芯2 MiB。
从AMD公开的示意图来看,各片(Slice)L3 Cache之间的连接方式像是full-mesh(全网状,即每两个点之间都有直接连接,无需跳转),CCX内部的跨核芯L3 Cache访问是一致的
Zen的CCD里除了2个CCX,还有2个DDR内存控制器(各对应1个内存通道),用于片上(die之间)互连的Infinity Fabric(IF On-Package,IFOP),而CPU之间互连的Infinity Fabric(IF Inter-Socket,IFIS)与对外的PCIe通道是复用的——这个知识点在后面会用到。
芯片层面的模块是CCD(Core Complex Die),包括2个CCX,共8个Core、4 MiB L2 Cache、16 MiB L3 Cache。官方名称为AMD EPYC 7001系列的第一代EPYC处理器只有CCD这一种(die层面的)模块,所以每个CCD除了2个CCX,还有大量I/O接口器件,包括DDR、Infinity Fabric/PCIe控制器,CCX占CCD面积的比例只比一半略多(56%)。
这个多芯片模块(multi-chip mole,MCM)架构的代号为Zeppelin(齐柏林),四个这样的“复合型”CCD构成完整的第一代EPYC处理器,最多能提供32核芯、64 MiB L3 Cache,直接减少CCD的数量就会得到面向PC市场的高端(2×CCD)和主流产品(单CCD)。
按照AMD提供的数据:每个die的面积为213mm²(平方毫米),4个die的MCM封装总面积为852mm²,如果要用大型单一芯片来实现,面积可以缩小到777mm²,大约节省10%,但是制造和测试成本要提高约40%,完全32核的收益下降约17%、成本提高约70%。投入产出比当然非常划算,也变相的说出了大英的苦衷——可是,后者为什么还在坚持单片路线呢?
MCM这种完全对称的模块化方案,如果套用到数据中心领域,相当于一个园区,几栋建筑结构和功能完全一样,都包含了机房、变配电、柴发、冷站、办公和接待区域等。好处当然是彼此之间没有硬性依赖,每栋建筑都可以独立作为数据中心使用,照此复制就可成倍扩大规模;缺点是没有其他类型的建筑,而有些功能还是需要专门的建筑集中和分区管理的,譬如人员办公和统一接待……
如果一个数据中心园区只有黄框里这一种建筑(模块)……实际上,加上左边的66KV变电站,这里也只是整个园区的一角
况且,与绝大多数的数据中心园区不同,CPU对各模块之间的耦合度要求高得多,否则无法作为一个整体来运作,分工合作快速完成数据处理等任务。而这,正是MCM方案的局限性所在。
第一代EPYC的每个CCD都有“自己的”内存和I/O(主要是PCIe)通道,加上CCD之间的互连,每个CCD的外部I/O都很“重度”
多芯片(对称)设计、全“分布式”架构的特点是内存和I/O扩展能力与CCD数量同步,随着核芯数量的增加,内存和I/O的总“容量”(包括带宽)会增加,这当然是优点,但缺点也随之而来:
首先是局部性(locality)会降低I/O的性能,主要是跨CCD的内存访问时延(latency)明显上升。因为每组(2个)CCX都有自己的本地内存,如果要访问其他CCD上连接的内存,要额外花费很多时间,即所谓的NUMA(Non-Uniform Memory Access,非一致性内存访问)。虽然Zen的CCD上有足够多的IFOP,让4个CCD之间能组成全连接(full-mesh),无需经其他CCD跳转(类似于CCX内4个核芯之间的状况),但I/O路径毕竟变长了;如果要访问其他CPU(插槽)连接的内存,还要经过IFIS,时延会进一步上升。
CCD里的两个CCX也通过Infinity Fabric连接,同样会增加跨CCX的Cache访问时延
根据AMD提供的数据,不同内存访问的时延水平大致如下:
随着访问路径变长和复杂,时延以大约一半的比例增加,这个幅度还是很明显的。
同一个CCD里的内存访问没有明显差异,而跨CCD的内存访问,时延增加就很明显了
然后是PCIe,前面已经有图说明,Zen用于CPU之间互连的IFIS与PCIe通道是复用的,即单路(单CPU)的情况下全都用于PCIe通道,共有128个;双路(双CPU)的情况下每个CPU都要拿出一半来作为(两者之间的)IFIS,所以(对外的)PCIe通道数量仍然是128个,没有随着CPU数量的增加而增长。
简单归纳一下,Zen架构的问题是:核数越多,内存访问的一致性越差;CPU数量增加,外部I/O的扩展能力不变——NUMA引发的跨CPU访问时延增长问题还更严重。
单CPU就能提供128个PCIe 3.0通道原本是第一代EPYC处理器的一大优势,但双CPU仍然是这么多,就略显尴尬了
核数进一步增加的困难很大,不论是增加每个CCD的核数,还是增加CCD的数量,都要面临互连的复杂度问题,也会进一步恶化一致性。
说得更直白一些,就是Zen架构的扩展能力比较有限,难以支持更大的规模。
既然双路配置有利有弊,AMD又是时隔多年重返服务器市场,单路一度被认为是EPYC的突破口,譬如戴尔(Dell)在2018年初推出三款基于第一代EPYC的PowerEdge服务器,其中就有两款是单路。
1U的R6415和2U的R7415都是单路服务器
类似的情况在通常用不到那么多核及I/O扩展能力的PC市场体现得更为明显,在只需要一到两个CCD即可的情况下,消费者更多感受到的是低成本带来的高性价比,所以“AMD Yes!”的鼓噪主要来自个人用户,服务器市场在等待EPYC的进一步成熟。
只有1个die的Ryzen将Zen架构的缺点最小化,获得个人用户的喜爱也就不足为奇了
Chiplet:异构混合模块化的是与非
时隔两年之后,AMD推出基于Zen 2架构的第二代EPYC处理器,通过架构与制程一体优化,达到最高64核、256 MiB L3 Cache,分别是第一代EPYC的2倍和4倍,内存访问一致性和双路的扩展性也有不同程度的改善,终于获得了一众云服务提供商(CSP)的青睐。
Zen 2的整体设计思维是Zen的延续,但做了很多明显的改进,配合制程(部分)升级到7nm,突破了Zen和Zen+在规模扩展上的限制。
首先,Zen2架构延续了Zen/Zen+架构每个CCD有2个CCX、每个CCX有4个核芯共享L3 Cache的布局,但是每个核芯的L3 Cache增大一倍,来到4MiB,每个CCX有16 MiB L3 Cache,是Zen/Zen+架构的两倍。
CCD层面的主要变化是把DDR内存、对外的Infinity Fabric(IFOP/IFIS)和PCIe控制器等I/O器件剥离,以便于升级到7nm制程。AMD表示,第一代EPYC中,上述I/O器件占CCD芯片面积的比例达到44%,从制程提高到7nm中获益很小;而第二代EPYC的7nm CCD中,CPU和L3 Cache这些核心计算、存储器件的占比,高达86%,具有很好的经济性。
被从CCD中拿出来的DDR内存控制器、Infinity Fabric和PCIe控制器等I/O器件,组成了一个单独的I/O芯片,即I/O Die,简称IOD,仍然采用成熟的14nm工艺。
自左至右,分别是传统单片式、第一代EPYC的MCM、第二代EPYC的Chiplet三种架构的示意图
一个IOD居中,最多8个CCD围绕着它,AMD把这种做法称为Chiplet(小芯片)。
如果继续拿数据中心的模块化来强行类比,相当于把整个园区内的变电站、柴发、冷站、办公和接待区域都整合到一个建筑里,位于园区中央,周围是构造完全相同的一座座机房楼……你说,这样一个所有机房楼都离不开的建筑,该有多重要?
仅从布局看,和第二代EPYC处理器有点像的数据中心,但变电站在园区外,制冷也是分布式的(与4个机房模块在一起),中间的建筑并没有上面设想的那么重要
第一代EPYC处理器(Naples)与第二代EPYC处理器(Rome)的片上布局对比,后者是1个IOD + 8个CCD,共9个小芯片组成的混合多die设计
因为CCD的数量增加一倍,所以Rome的核数可以达到Naples的两倍;因为每个CCX/CPU核芯的L3 Cache容量也增加了一倍,所以Rome的L3 Cache总容量可以达到Naples的四倍。
14nm IOD + 7nm CCD的组合——因为不是全部升级到7nm,所以我更愿意称之为制程的“优化”——体现了更高的扩展性和灵活性,使第二代EPYC能够以较低的制造成本提供更丰富的产品组合,提高了市场竞争力。但是,事情并没有看起来这么简单,要了解产品的具体构成和预期的性能表现,您还需要继续往下看。
2019年8月,第二代EPYC正式发布后不久,AMD在Hot Chips大会上介绍了Zen 2产品的Chiplet设计。可能是之前有Zen+架构采用12nm制程的缘故吧,IOD的制程被写成了12nm,其他场合的官方材料都是14nm,所以我们还是以后者为准
今年2月IEEE的ISSCC(International Solid-State Circuits Conference,国际固态电路峰会)2020上,AMD更详细的介绍了Zen 2这一代产品的设计。结合前一幅图可以看到,第二代EPYC的IOD具有83.4亿晶体管,数量与同样采用14nm制程的英特尔Skylake/Cascade Lake相当——虽然两者的晶体管类型构成有很大差别,但可以作为一个参照,说明这个IOD自身的规模和复杂度。
从红框中的选项来看,EPYC 7302 CPU有4个CCD,每个CCX有2个核芯,可以选择各启用1个
IOD集中所有I/O器件的一个好处是,CPU能提供的内存通道数量与CCD的数量无关。E企实验室前一阵测试了基于第二代EPYC处理器的Dell PowerEdge R7525服务器,送测配置包括2个AMD EPYC 7302处理器,从PowerEdge R7525的BIOS设置中可以看到,这款16核的CPU有4个CCD(而不是8个),应该对应下图中右二的情形:
上方柱状图是AMD列出7+14nm Chiplet方案与假设的单片7nm方案相比,成本优势可以达到一半以上(64核没有假设,可能是指单片式很难制造);下方从左至右依次是8、6、4、2个CCD的布局,原则是尽可能的对称
虽然7302在EPYC 7002系列产品中定位偏低端,只有16个核芯,用4个CCX就能满足,但是它拥有128MiB的L3 Cache,这又需要8个CCX才可以。因此,7302的每个CCX只有2个核芯,享受原本属于4个核芯的16 MiB L3 Cache。
从EPYC 7002系列的配置表中可以看出,7302下面72开头的产品才是真正的低端,譬如同样是16核的7282,不仅L3 Cache容量只有7302的一半(倒是符合每核4 MiB的“标配”),而且仅支持4个内存通道,也是7302等产品的一半——说明其CCD数量是2个,就像前一幅图右下方所示的情况——4个内存通道配置的运行频率也低,只有DDR4-2667,与标准的8通道DDR4-3200相比,理论内存带宽仅为40%多
Dell PowerEdge R7525用户手册里对内存条的安装位置有很详细的说明,毕竟插满8个内存通道和只用4个内存通道,性能差距太大
IOD集中所有I/O对性能也有好处,因为内存控制器集中在一个芯片上,有助于降低内存访问的局部性(NUMA)。不过,AMD在很多场合放出的示意图很有误导性,容易让人以为,对Rome(下图右侧)来说,同一个CPU上的内存访问是不存在NUMA的。
从上面的数据来看,第二代EPYC处理器的“本地”内存访问时延有所增长,毕竟内存控制器和CCX不在一个die上了;收益是跨CPU内存访问的时延有所下降,总体更为平均
好在,稍微详细一点的架构示意图表明,一个EPYC 7002系列CPU内部的内存访问仍然会有“远近”之分:
Dell PowerEdge R7525的BIOS配置中,可以在L3 Cache的NUMA设置为Enabled之后,看到每个CPU内部其实还是可以像EPYC 7001系列一样,分成4个不同的NUMA区域
这时学术性会议的价值就体现出来。AMD在ISSCC 2020上的演讲表明,完整版的Server IOD要承载的功能太多,已经有太多的晶体管,中间都被Infinity Fabric和PCIe相关的I/O所占据,内存控制器只能两两一组布置在IOD的四角,每2个CCD就近共享2个内存控制器。由于中间已经没有走线空间,只能构成一个没有对角线连接的2D-mesh拓扑——仅从拓扑角度而论,还不如EPYC 7001系列4个CCD的full-mesh连接方式。所以,临近的访问有长短边造成的延迟差异,对角线的内存访问因为要走过一长一短两条边,没有捷径可走,自然要更慢一些。
注意放大看IOD布局示意图和右侧1~4的不同等级时延注解,可以理解为每个CPU内部仍然分为4个NUMA区域:本地、短边、长边、(拐个弯才能抵达的)对角线
Hot Chips大会上的这张示意图突出了不同功能的Infinity Fabric导致的IOD中部拥挤,和DDR内存控制器都被挤到边角上的感觉。结合前一张图,不难理解,像EPYC 7282这样只有2个CCD对角线布置的低端SKU,另一条对角线上的4个DDR内存控制器主要起增加内存容量的作用,不如只保留CCD就近的4个内存通道
总之,不管是EPYC 7001系列的MCM,还是EPYC 7002系列的Chiplet,随着芯片数量的增长,性能肯定会受到越来越明显的影响(而不是近乎线性的同步提升),只是好的架构会延缓总体性能增长的衰减速度。
这里我们可以回过头来看看同样基于Zen 2架构的第三代AMD Ryzen处理器,主流PC产品没有那么多核数要求,只用2个CCD即可满足,所以其配套的Client IOD(cIOD)正好是Server IOD的四分之一,从前面图中晶体管数量的对比(20.9亿 vs. 83.4亿)也可以看出来。
代号“Matisse”的第三代Ryzen,仍然可以看到两个DDR4内存控制器偏居一隅的“遗存”,但对两个CCD已经公平了很多,基本不存在NUMA问题。也就难怪“AMD真香”党在消费类用户中比例要大得多
尽管CCD升级到了7nm,但更多核芯、更大得多的L3 Cache,意味着整体功耗的上升,譬如同样16核的7302和7282,前者Cache大一倍,频率略有提高,默认TDP就来到了155W,Dell为送测的R7525配备了180W的散热器——而EPYC 7282的TDP则“只有”120/150W。当然,CCD应用7nm的效果还是比较明显的,同样16核、L3 Cache只有7302四分之一,运行频率还低500MHz的7301,TDP也有150/170W,基本与7302相当。
为了满足云计算、高性能计算(HPC)和虚拟化等场景的用户需求,AMD又向EPYC 7002系列CPU中增加了大量多核大(L3) Cache以及核数虽少但频率很高的型号(如今年初发布的7Fx2系列),导致全系列产品中TDP在200W以上的SKU占比很高,也给服务器的散热设计带来了更高的挑战。
200W+的CPU将越来越常见
EPYC 7002系列的另一大改进是PCIe从3.0升级到4.0,单路仍然是128个通道,但双路可以支持多达160个通道(譬如Dell PowerEdge R7525的特定配置)——在主板支持的情况下。第一代EPYC处理器推出时的一个卖点是,为其设计的主板也可以支持第二代EPYC处理器。没有广而告之的是,要支持PCIe 4.0,主板需要重新设计。用老主板可以更快的把第二代EPYC处理器推向市场,却不能充分发挥新CPU的全部能力。
不过,PCIe 4.0本身就是一个很大的话题,留待以后(有机会的话)专文讨论。
❸ 服务器的配置(参数)是如何的
你可以到厂商官网看看,相关的一些设计配置参数,比如这款
产品型号:ZI2W6S7-8438HV
产品类型:双路十六核机架式服务器
处 理 器:Xeon Silver
4110
内 存:8G DDR4 REG ECC
硬 盘:HD SATA3
2TB
网 卡:双千兆
管 理:硬件监控、远程管理
机 构:2U机架式
电 源:500W
操作系统:Linux免费版
/ VMware ESXi
服 务:全国联保 叁年质保
❹ 搭建云平台,服务器硬件的最低配置
这个关键要看云平台软件支持的最小硬件配置,很多都支持一台服务器搭建。只要配置支持vt的cpu(基本服务器都支持),硬盘,4-8核以上,内存8-16gb以上。配系统盘大于500GB,数据盘1-5TB不等(关键看你要存多少数据),然后一块千兆网卡。
❺ 如何自己搭建服务器
服务器, 你任何一台电脑都可以是一台服务器, 服务器就是一个特别设计过的适合长时间运行的一台主机. 只是存视频网站而已, 不需要很高配置的机器, 随便配一个能用的的xeonCPU, 然后内存8G已经算是豪华了, 显卡就不用了, 服务器要啥显卡, 电源也是够用就行, 重要的是硬盘, 你要考虑组raid来保护硬盘出现问题. 如果外网建议使用使用云服务器然后使用它们的存储服务, 但是500T价格不菲的...就算你买硬盘也要至少买十几个硬盘....
❻ 中小型企业如何选择云服务器的
楼主你好,如果是企业选择服务器,要看是做企业哪方面业务。(参考:易迈云 推出企业0元购买云服务器的永久性活动 )如果是企业网站一般对主机配置要求不高,即便是几百兆虚拟主机也可以满足,如果对整体安全要求更高,也可以选择云主机,或独立服务器。如果是放置企业其他类型业务,可以结合业务对机器硬件,带宽的要求来选择适合的主机。
企业有很多类型,不同企业需求也不一样,需要根据企业的性质决定服务器的方案!
用户可根据不同需求,自由选择CPU、内存、数据盘、带宽等配置,还可随时不停机升级带宽,
❼ 专门为云计算设计的“云服务器”是不是没有显卡
一般的云服务器是没有显卡的,你可以参考正睿这款云计算服务器就清楚了
产品型号:ZI22S6-14988RHV
产品类型:双路十四核机架式服务器
处 理 器:Xeon
E5-2680 V4
内 存:16G DDR4 REG ECC
硬 盘:HD SAS 600G
地址:http://www.zrway.com/server/proct_param/1023/11460.html
❽ 微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计
基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发、部署、运维管理、持续开发持续集成的流程。平台提供基础设施、中间件、数据服务、云服务器等资源,开发人员只需要开发业务代码并提交到平台代码库,做一些必要的配置,系统会自动构建、部署,实现应用的敏捷开发、快速迭代。在系统架构上,PaaS云平台主要分为微服务架构、Docker容器技术、DveOps三部分,这篇文章重点介绍微服务架构的实施。
如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
实施微服务需要投入大量的技术力量来开发基础设施,这对很多公司来说显然是不现实的,别担心,业界已经有非常优秀的开源框架供我们参考使用。目前业界比较成熟的微服务框架有Netflix、Spring Cloud和阿里的Dubbo等。Spring Cloud是基于Spring Boot的一整套实现微服务的框架,它提供了开发微服务所需的组件,跟Spring Boot一起使用的话开发微服务架构的云服务会变的很方便。Spring Cloud包含很多子框架,其中Spring Cloud Netflix是其中的一套框架,在我们的微服务架构设计中,就使用了很多Spring Cloud Netflix框架的组件。Spring Cloud Netflix项目的时间还不长,相关的文档资料很少,博主当时研究这套框架啃了很多英文文档,简直痛苦不堪。对于刚开始接触这套框架的同学,要搭建一套微服务应用架构,可能会不知道如何下手,接下来介绍我们的微服务架构搭建过程以及 需要那些 框架或组件来支持微服务架构。
为了直接明了的展示微服务架构的组成及原理,画了一张系统架构图,如下:
从上图可以看出,微服务访问大致路径为:外部请求 → 负载均衡 → 服务网关(GateWay)→ 微服务 → 数据服务/消息服务。服务网关和微服务都会用到服务注册和发现来调用依赖的其他服务,各服务集群都能通过配置中心服务来获得配置信息。
服务网关(GateWay)
网关是外界系统(如:客户端浏览器、移动设备等)和企业内部系统之间的一道门,所有的客户端请求通过网关访问后台服务。为了应对高并发访问,服务网关以集群形式部署,这就意味着需要做负载均衡,我们采用了亚马逊EC2作为虚拟云服务器,采用ELB(Elastic Load Balancing)做负载均衡。EC2具有自动配置容量功能,当用户流量达到尖峰,EC2可以自动增加更多的容量以维持虚拟主机的性能。ELB弹性负载均衡,在多个实例间自动分配应用的传入流量。为了保证安全性,客户端请求需要使用https加密保护,这就需要我们进行SSL卸载,使用Nginx对加密请求进行卸载处理。外部请求经过ELB负载均衡后路由到GateWay集群中的某个GateWay服务,由GateWay服务转发到微服务。服务网关作为内部系统的边界,它有以下基本能力:
1、动态路由:动态的将请求路由到所需要的后端服务集群。虽然内部是复杂的分布式微服务网状结构,但是外部系统从网关看就像是一个整体服务,网关屏蔽了后端服务的复杂性。
2、限流和容错:为每种类型的请求分配容量,当请求数量超过阀值时抛掉外部请求,限制流量,保护后台服务不被大流量冲垮;党内部服务出现故障时直接在边界创建一些响应,集中做容错处理,而不是将请求转发到内部集群,保证用户良好的体验。
3、身份认证和安全性控制:对每个外部请求进行用户认证,拒绝没有通过认证的请求,还能通过访问模式分析,实现反爬虫功能。
4、监控:网关可以收集有意义的数据和统计,为后台服务优化提供数据支持。
5、访问日志:网关可以收集访问日志信息,比如访问的是哪个服务?处理过程(出现什么异常)和结果?花费多少时间?通过分析日志内容,对后台系统做进一步优化。
我们采用Spring Cloud Netflix框架的开源组件Zuul来实现网关服务。Zuul使用一系列不同类型的过滤器(Filter),通过重写过滤器,使我们能够灵活的实现网关(GateWay)的各种功能。
如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
服务注册与发现
由于微服务架构是由一系列职责单一的细粒度服务构成的网状结构,服务之间通过轻量机制进行通信,这就引入了服务注册与发现的问题,服务的提供方要注册报告服务地址,服务调用放要能发现目标服务。我们的微服务架构中使用了Eureka组件来实现服务的注册与发现。所有的微服务(通过配置Eureka服务信息)到Eureka服务器中进行注册,并定时发送心跳进行 健康 检查,Eureka默认配置是30秒发送一次心跳,表明服务仍然处于存活状态,发送心跳的时间间隔可以通过Eureka的配置参数自行配置,Eureka服务器在接收到服务实例的最后一次心跳后,需要等待90秒(默认配置90秒,可以通过配置参数进行修改)后,才认定服务已经死亡(即连续3次没有接收到心跳),在Eureka自我保护模式关闭的情况下会清除该服务的注册信息。所谓的自我保护模式是指,出现网络分区、Eureka在短时间内丢失过多的服务时,会进入自我保护模式,即一个服务长时间没有发送心跳,Eureka也不会将其删除。自我保护模式默认为开启,可以通过配置参数将其设置为关闭状态。
Eureka服务以集群的方式部署(在博主的另一篇文章中详细介绍了Eureka集群的部署方式),集群内的所有Eureka节点会定时自动同步微服务的注册信息,这样就能保证所有的Eureka服务注册信息保持一致。那么在Eureka集群里,Eureka节点是如何发现其他节点的呢?我们通过DNS服务器来建立所有Eureka节点的关联,在部署Eureka集群之外还需要搭建DNS服务器。
当网关服务转发外部请求或者是后台微服务之间相互调用时,会去Eureka服务器上查找目标服务的注册信息,发现目标服务并进行调用,这样就形成了服务注册与发现的整个流程。Eureka的配置参数数量很多,多达上百个,博主会在另外的文章里详细说明。
微服务部署
微服务是一系列职责单一、细粒度的服务,是将我们的业务进行拆分为独立的服务单元,伸缩性好,耦合度低,不同的微服务可以用不同的语言开发,每一个服务处理的单一的业务。微服务可以划分为前端服务(也叫边缘服务)和后端服务(也叫中间服务),前端服务是对后端服务做必要的聚合和剪裁后暴露给外部不同的设备(PC、Phone等),所有的服务启动时都会到Eureka服务器进行注册,服务之间会有错综复杂的依赖关系。当网关服务转发外部请求调用前端服务时,通过查询服务注册表就可以发现目标服务进行调用,前端服务调用后端服务时也是同样的道理,一次请求可能涉及到多个服务之间的相互调用。由于每个微服务都是以集群的形式部署,服务之间相互调用的时候需要做负载均衡,因此每个服务中都有一个LB组件用来实现负载均衡。
微服务以镜像的形式,运行在Docker容器中。Docker容器技术让我们的服务部署变得简单、高效。传统的部署方式,需要在每台服务器上安装运行环境,如果我们的服务器数量庞大,在每台服务器上安装运行环境将是一项无比繁重的工作,一旦运行环境发生改变,就不得不重新安装,这简直是灾难性的。而使用Docker容器技术,我们只需要将所需的基础镜像(jdk等)和微服务生成一个新的镜像,将这个最终的镜像部署在Docker容器中运行,这种方式简单、高效,能够快速部署服务。每个Docker容器中可以运行多个微服务,Docker容器以集群的方式部署,使用Docker Swarm对这些容器进行管理。我们创建一个镜像仓库用来存放所有的基础镜像以及生成的最终交付镜像,在镜像仓库中对所有镜像进行管理。
服务容错
微服务之间存在错综复杂的依赖关系,一次请求可能会依赖多个后端服务,在实际生产中这些服务可能会产生故障或者延迟,在一个高流量的系统中,一旦某个服务产生延迟,可能会在短时间内耗尽系统资源,将整个系统拖垮,因此一个服务如果不能对其故障进行隔离和容错,这本身就是灾难性的。我们的微服务架构中使用了Hystrix组件来进行容错处理。Hystrix是Netflix的一款开源组件,它通过熔断模式、隔离模式、回退(fallback)和限流等机制对服务进行弹性容错保护,保证系统的稳定性。
1、熔断模式:熔断模式原理类似于电路熔断器,当电路发生短路时,熔断器熔断,保护电路避免遭受灾难性损失。当服务异常或者大量延时,满足熔断条件时服务调用方会主动启动熔断,执行fallback逻辑直接返回,不会继续调用服务进一步拖垮系统。熔断器默认配置服务调用错误率阀值为50%,超过阀值将自动启动熔断模式。服务隔离一段时间以后,熔断器会进入半熔断状态,即允许少量请求进行尝试,如果仍然调用失败,则回到熔断状态,如果调用成功,则关闭熔断模式。
2、隔离模式:Hystrix默认采用线程隔离,不同的服务使用不同的线程池,彼此之间不受影响,当一个服务出现故障耗尽它的线程池资源,其他的服务正常运行不受影响,达到隔离的效果。例如我们通过andThreadPoolKey配置某个服务使用命名为TestThreadPool的线程池,实现与其他命名的线程池隔离。
3、回退(fallback):fallback机制其实是一种服务故障时的容错方式,原理类似Java中的异常处理。只需要继承HystixCommand并重写getFallBack()方法,在此方法中编写处理逻辑,比如可以直接抛异常(快速失败),可以返回空值或缺省值,也可以返回备份数据等。当服务调用出现异常时,会转向执行getFallBack()。有以下几种情况会触发fallback:
1)程序抛出非HystrixBadRequestExcepption异常,当抛出HystrixBadRequestExcepption异常时,调用程序可以捕获异常,没有触发fallback,当抛出其他异常时,会触发fallback;
2)程序运行超时;
3)熔断启动;
4)线程池已满。
4、限流: 限流是指对服务的并发访问量进行限制,设置单位时间内的并发数,超出限制的请求拒绝并fallback,防止后台服务被冲垮。
Hystix使用命令模式HystrixCommand包装依赖调用逻辑,这样相关的调用就自动处于Hystrix的弹性容错保护之下。调用程序需要继承HystrixCommand并将调用逻辑写在run()中,使用execute()(同步阻塞)或queue()(异步非阻塞)来触发执行run()。
动态配置中心
微服务有很多依赖配置,某些配置参数在服务运行期间可能还要动态修改,比如:根据访问流量动态调整熔断阀值。传统的实现信息配置的方法,比如放在xml、yml等配置文件中,和应用一起打包,每次修改都要重新提交代码、打包构建、生成新的镜像、重新启动服务,效率太低,这样显然是不合理的,因此我们需要搭建一个动态配置中心服务支持微服务动态配置。我们使用Spring Cloud的configserver服务帮我们实现动态配置中心的搭建。我们开发的微服务代码都存放在git服务器私有仓库里面,所有需要动态配置的配置文件存放在git服务器下的configserver(配置中心,也是一个微服务)服务中,部署到Docker容器中的微服务从git服务器动态读取配置文件的信息。当本地git仓库修改代码后push到git服务器仓库,git服务端hooks(post-receive,在服务端完成代码更新后会自动调用)自动检测是否有配置文件更新,如果有,git服务端通过消息队列给配置中心(configserver,一个部署在容器中的微服务)发消息,通知配置中心刷新对应的配置文件。这样微服务就能获取到最新的配置文件信息,实现动态配置。
以上这些框架或组件是支撑实施微服务架构的核心,在实际生产中,我们还会用到很多其他的组件,比如日志服务组件、消息服务组件等等,根据业务需要自行选择使用。在我们的微服务架构实施案例中,参考使用了很多Spring Cloud Netflix框架的开源组件,主要包括Zuul(服务网关)、Eureka(服务注册与发现)、Hystrix(服务容错)、Ribbon(客户端负载均衡)等。这些优秀的开源组件,为我们实施微服务架构提供了捷径。
如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
❾ 选择云计算服务器需要考虑哪些因素
性价比:相同配置的服务器,大家肯定希望买到便宜的服务器。有很多初次购买服务器的小伙伴很难买到好的服务器,这与很多客户不知道如何购买有一定的关系。大家要学会比对,看看cpu、硬盘、内存、带宽、支持多少ip等等。
服务器稳定性:服务器的稳定性与服务器的硬件及软件都有一定的关系,硬件优秀的服务器不容易出现假死的情况,也不容易出现物理故障。软件也是一个方面,如果你用的盗版window软件,很容易出现被骇客入侵的情况发生。
云计算服务器注意事项
对于大多数用户而言,在大多数情况下,很难区分在云服务器上运行的应用程序(procere)和在具有相同规格的物理服务器上运行相同应用程序之间的区别。当然,前提是两者都配置正确。但是,一旦深入研究(research)并开始查看磁盘IO和低级别CPU基准等指标,物理和虚拟硬件之间的根本区别就会变得更加明显。
正是出于这个原因,许多用户更愿意使用(use)物理服务器和固态硬盘(简称:HDD)来搭载性能(xìngnéng)密集型应用程序(procere)。虽然这并不意味着云服务器一律较慢或物理服务器一定更快。特别是云服务器,有许多因素会影响其他方面相同的虚拟硬件的性能。
❿ 推荐几款双路服务器主板型号
具体要看你配什么CPU,干什么用,再搭配,服务器不是台式机这种大白菜,配置不好,影响很大,不过一般自己攒的话,还是超微吧,通用性好些.个人推荐青云服务器。青云服务器就是青云计算机与超微合作研发的,可以根据实际需求设计方案,让服务器性能达到最优