高性能DIY服务器实战
作者:www.linkwan.com?林和安 邓越朝、Vincent
05年12月,笔者根据DIY服务器心得,曾撰文《DIY 1U AMD双核心服务器实录》,文章先后在各大网站登出,籍此机会得以和各界朋友广泛交流,并得到了广大网友的支持和鼓励,收获颇丰(有兴趣的朋友可以在各大网站搜索相关主题或参阅本站网络技术专题——DIY服务器专题www.linkwan.com/gb/tech/sysinte/05120201.htm)。近日笔者为自己创办的“世界网络”网站再次DIY了二台服务器。本次DIY经历感悟良多,不敢独享,故此再次撰文与广大DIY爱好者交流。
原有服务器硬件配置如下表:
配置 | 网页服务器 | 数据库服务器 |
CPU | Intel P4 3.2G (478针,130纳米Northwood核心) |
Intel P4 3.2G (478针,130纳米Northwood核心) |
主板 | Intel D865GBF主板 | Intel S875WP1-E 主板 |
内存 | ?海盗船DDR1 512M×2 | 海盗船DDR1 512M×4 |
硬盘 | WD 猛禽74G | WD 猛禽74G |
电源 | Sirtec PUA-40060-PB1 400W | Sirtec PUA-40060-PB1 400W |
原有的这两台服务器,采用当时最为成熟的130纳米制程P4 3.2G,无论发热量还是执行效率,都比之后推出的90纳米制程P4优胜,可以说是Intel P4 处理器上的颠峰之作。这两台服务器自上架运作以来,一直稳定运行。世界网络(www.linkwan.com)提供速度测试、路由追踪等功能,服务两岸三地,日访问量超过8万多,多种程序和大型数据库运行超过2 年,未发现任何穏定性问题。随着时间的推移和网站流量的增长,以上两台服务器负担日重,数据库服务器CPU占用率经常保持在60%左右,峰值占用率甚至达到90%以上。为了满足越来越大的访问量,提供更好的网络服务,升级硬件设备,已是势在必行了。不过如何升级,才能做到最大限度利用现有资源,并适合现阶段需求,也需要多多考虑。经过多番斟酌,定下以下方案。
新服务器硬件配置如下表:
配置 | 网页服务器 | 数据库服务器 |
CPU | P4 3.2G (原服务器的CPU ) | AMD Athlon 64 X2 4600+ (AM2) |
主板 | TYAN S5112G2NR(Intel 7210芯片组) | TYAN S3950G2NR |
SCSI卡 | Adaptec 29320ALP-R | 泰安M7901卡(Adaptec 7901芯片) |
内存 | 海盗船DDR1 512M×4 (原服务器内存) | 海盗船 DDR2 800 1G×2 |
硬盘 | ST SCSI 73G×2 (RAID 1) | ST SCSI 73G×2 (RAID 1) |
电源 | Zippy P1H-6507P 500W | Zippy P1H-6507P 500W |
机箱 | IOK 1U 专用机箱 | IOK 1U 专用机箱 |
以下笔者将对各配件的选择进行说明,提供给各位同好参考。由于数据库服务器是全新配置,所以会比较侧重,网页服务器配置比较常见,则介绍相对稍微简略些。
一、CPU的选择
基本上,CPU的选择决定了整个平台的基调。双路双核的CPU平台,性能强劲,不过从实际应用来看,笔者的网站,尚无需如此高的性能。而单路CPU中,双核CPU无疑是一个性能与价格的平衡点。现时双核CPU,大致有AMD的X2系列,Intel的PD系列和“酷睿”3个系列。Intel PD系列发热量高,性能也不尽理想,所以不是最佳选择。而“酷睿”系列的双核,性能提升明显,不过遗憾的是,市面上至今为止,尚未有配套“酷睿”的服务器主板出现,如果配套PC主板的话,却又不适合服务器应用,衡量各方面的厉害关系,数据库服务器最终还是选择了AM2 接口的AMD Athlon 64 X2 4600+。由于网页服务器负担相对较轻,P4 3.2G已经可以满足,所以网页服务器继续采用原有的CPU,物尽其用,节省资金。
关于AMD X2系列,已经是一款相当成熟的产品了,相信已经广为人知,就不需要笔者多费笔墨了。至于性能测试,笔者将在下文再作表述,在此就不作详细说明。
二、主板的选择
作为整个服务器的基石,主板无疑是需要多加考虑的重点配件。出于稳定性和质量的考虑,笔者选择了泰安TYANS3950G2NR主板。泰安计算机作为全球知名的专业服务器主板厂商之一,产品质量相当令人放心,考虑到泰安这款主板市面上比较少见,所以在此详细介绍一下。
这款主板采用的芯片组是ServerWorks出品的HT1000单芯片。ServerWorks是一家专门研发服务器高端芯片组的芯片组设计公司,从奔腾pro时代开始,ServerWorks就一直是Intel平台上最重要的服务器芯片组设计伙伴。ServerWorks的这款芯片组,可以支持双路的Opteron,笔者此款主板仅仅用于支持单路CPU,自然绰绰有余。主板所支持的功能和参数如下:
◇ 支持 AMD AM2 系列处理器
◇ 最高支持 1Ghz Hyper-Transport 总线频率
◇ 采用 ServerWorks HT1000芯片组
◇ 支持双通道 DDR2 533/667/800 内存
◇ 最大支持 4 GB unbuffer 内存
◇ 支持 ATA-133 IDE 接口
◇ 支持 4 个 S-ATA 接口,支持RAID 0,1,0+1
◇ 内置两个千兆网卡
◇ 64bit 133MHz PCI-X 插槽一条
◇ 32bit 33MHz PCI插槽四条
◇ 内置SO-DIMM界面
◇ 内置 XGI Z7 显示卡
◇ 内置 32MB 显示内存
◇ ATX 尺寸(12″x 9.6″;305mm x 244mm)
从布局来看,这款主板为1U机箱应用考虑的非常周到。首先,CPU和内存的位置合理。CPU插槽位于主板的前端,内存4根插槽位于右侧,这是经典的单路1U服务器主板设计布局,配合1U机箱的风墙,可以快速有效地排出机箱内部的热量。其次,PCI-X插槽处在主板中间的部位,方便1U机箱内的扩展卡转接。另外,这款主板虽然没有集成SCSI接口,但提供了一个SO-DIMM接口,可以接TYAN研发的MINI扩展卡,实现对SCSI、SATA、SAS等接口的扩展支持。
泰安的SO-DIMM卡,现阶段主流的有3个型号:
1、 M7901,支持单通道SCSI RAID 0,1;
2、 M7902,支持双通道SCSI RAID 0,1;
3、 M9000,支持8口SAS、SATAII,支持RAID 0,1,5,10。
由于采用小型PCB尺寸板型,SO-DIMM卡的价格远比采用同样芯片的独立SCSI卡或者SAS卡便宜,更由于接口的通用型,所以选择和升级都比固化在主板上的接口更加灵活,在低成本上实现灵活的扩展,又不占用过多的空间,可谓一举数得。
总的来说,泰安S3950G2NR作为一款单路双核CPU服务器主板,为组建高性价比的服务器提供了一个实用、稳定的选择。
至于网页服务器,则采用了泰安S5112G2NR。本次升级,网页服务器升级为SCSI硬盘,所以更换拥有64bit PCI-X插槽的服务器主板,无疑比原先仅有32bit PCI槽的Intel S875WP1-E 主板更佳。
三、内存
因为考虑到网站数据库应用的数据量非常大,对内存容量要求较高,所以采用了2条1G的内存,总共是2G的容量,避免因内存不足引起响应迟钝。AM2接口的Athlon 64 X2支持DDR2内存,笔者采用了海盗船(Corsair) DDR2 800 内存条,名牌内存的做工和质量,都对服务器的整体稳定大有贡献。
对于网页服务器,则依旧沿用原有的DDR400 内存,2G的容量,也绰绰有余了。
四、硬盘
普通的单路服务器,出于成本的考虑,经常会采用桌面型号硬盘,如IDE、SATA等。IDE和SATA硬盘确实成本低廉,不过世事并无十全十美,IDE或者SATA等桌面型号硬盘,速度远远不如专为服务器应用设计的SCSI硬盘。另外,可靠性方面,两者也是大有区别。桌面型号硬盘的平均故障间隔时间(MTBF,Mean Time Between Failure),一般只有50~60万小时而已,而且并非为7×24小时的服务器应用设计,耐用性和使用寿命,比起拥有120万小时 MTBF的SCSI设备,还是相差甚远。
当然,类似西部数据的“猛禽”WD360/WD740 硬盘之类的万转SATA硬盘,也拥有服务器级别的性能和耐用性,不过和传统的SCSI硬盘比起来,“猛禽”硬盘在大流量数据吞吐的时候,对CPU的占用率还是比SCSI硬盘为高,考虑到TYAN S3950G2NR主板可以接扩展卡,不需要购买昂贵的SCSI卡就可以支持SCSI设备,所以本次DIY,选择了希捷捷豹万转73G SCSI硬盘,作为存储设备。
笔者的网站面对比较关键的应用,对数据安全性和稳定性要求较高,所以选择2颗SCSI 73G硬盘作RAID 1镜像,提高数据的安全性,并且可以提升读取速度。
五、机箱和散热
1U机箱的散热,历来都是一个热门话题,对机箱内部散热,笔者向来都比较在意。机箱的散热,有几个关键性环节,下面分别表述。
1、 CPU等热源的散热。
在1U机箱里面,随着CPU频率的增高,以往经常采用的1U薄型主动散热方式已经越来越难以满足要求。原因在于主动式散热器由于厚度限制,散热铜块只有1~2cm,导致散热面积过小,再有,薄型风扇的转速提高困难,因为过高的转速对机械部件的寿命有很大的影响。现时主流的1U CPU散热方案,都是采用“大面积散热器+机箱风扇组合”方案。要采用这类方案,主板也必须有相应的布局设计。而泰安S3950G2NR的布局上已经为1U散热作了优化,所以无需担心主板的布局问题。本次笔者选择了Cooljag专为AM2架构设计的1U纯铜散热器。
在安装散热器的时候,也需要注意一些细节问题,才可保证散热效果。
首先,用无水酒精对CPU和散热块表面进行清洁,以保证CPU表面与散热块尽量紧密的接触。其次,采用高品质的散热硅脂,并且注意涂抹的时候,尽量均匀。笔者曾采用Arctic Silver 5纯银散热膏,严格按照说明书操作,成功将CPU温度降低3-4℃。如果按照温差计算,3摄氏度的幅度,改善的效果已经超过10%。最后,安装散热块的时候,要注意四个角均匀用力,拧螺丝的时候,采用对角线的方式用力,切忌一下子就拧紧一边螺丝,这样才能保证散热块与CPU平行接触,不至于留下空隙。
2、机箱内部空气对流通道。
本次选择了IOK的1221机箱。普通的1U机箱风扇,一般是八千转至一万转,风力虽然也相当强,不过为了获得更好的散热效果,笔者采用了台湾AVC牌 DF04056B 12V 1.88A一万八千转双轴高速加强型风扇进行改良。
针对最大的发热部分——CPU,笔者手工DIY了一个塑胶导风罩子,将风墙的风力,集中到CPU处,取得最佳的CPU散热效果。
风墙的后部,是硬盘的位置,这样对CPU进行散热的同时,也抽吸了硬盘的热量,整个机箱内部,都处在散热气流之中,保证了整体的散热效果。对另一个大热源——电源,则采用了一个加强型风扇和一个普通风扇,进行抽风处理。经过这一系列的改造,机箱内部所有发热量较大的部件,都得到了有效的处理。很多朋友也许觉得内存没有专门的散热处理,会担心内存部分。在实际使用测试中,笔者也测量过内存的发热量,DDR2的功耗一贯较低,发热量并不高,尽管频率高达800MHz,温度也仅是温热而已,机箱内部气流的余风,完全足够应对内存的散热,所以并不需要担心。
在安装好所有硬件和接线之后,最后还需整理机箱内的线缆,用扎线带将线缆捆扎好。特别是机箱风扇附近的细小线缆,更是需小心整理,稳妥处理。捆扎线缆不单单是美观问题,整齐的扎线有利于腾出尽量多的空间,有利散热,更重要的是,可防止线缆不慎进入风扇等部分,造成风扇停转、短路等故障。虽是小小细节,如果不认真处理,很可能造成大故障,故此绝不能马虎。
六、电源的选择
服务器与PC最大的分别,就在于对稳定性的需求不同。服务器的性能不一定要很强,但是稳定性却无论如何都必需保证。特别是笔者这类对广大网友提供服务的网站,必须保证全年不间断运行,对稳定性的要求,更是严格。笔者花大力气改善机箱散热,是为了保障服务器的稳定性。但是要保证稳定性,必须从全盘考虑。一台服务器的稳定性,和电源有着莫大的关系。高可靠性和质量的电源,才能为服务器7×24小时不间断运作提供保障。而劣质电源,则有可能给服务器造成无规律重启、硬盘坏道等隐蔽性故障。所以对电源的选择,是万万不可轻视的。高端服务器,为了保证电源的万无一失,甚至采用价格昂贵的冗余电源方案。本次DIY,电源方面笔者选择全球知名品牌zippy(新巨)的产品,型号是H1H-6507P,额定功率为500W。Zippy作为全球三大高端服务器专业厂商之一。国内外多家著名服务器厂商的高端机型,采用的就是Zippy的电源。
以下是此次DIY服务器各配件的电源功率:
配置 | 3.3V | 12V | -12V | 5V | -5V | +5VSB | 总功率 |
主板:TYAN S3950G2NR | 1.1A | 1.4A | 0.8A | 24.2 | |||
CPU:AMD Athon 64 X2 | 7.42A | 89 | |||||
内存:海盗牌DDR2-800 1G x2 | 0.5A | 6 | |||||
硬盘:ST SCSI 73G x 2 (RAID 1) | 4A | 1.6A | 56 | ||||
散热风扇七只 | 8.55A | 102.55 | |||||
SCSI 卡 | 约5W | ||||||
合计 | 21.47A | 3.1A | 0.8A | 282.05 |
以上是根据电流与电压数据计算的功率,与官方公布的会有所出入。例如硬盘的官方公布功率仅仅是10W左右,上面估算出来的数据,比官方的数据偏高一些。
电源可输出功率的官方参数如下:
配置 | 3.3V | 12V | -12V | 5V | -5V | +5VSB | 总功率 |
P1H-6507P 500W | 20A | 40A | 0.5A | 25A | 0.5A | 2A | 500 |
由此可见,计算出来的服务器功耗不到300W,用500W的电源供应,自然游刃有余。采用高功率的电源,可获得充足的裕量,否则带负载条件下电源内部温度会升高太多,势必影响稳定度及寿命。另外,高功率的电源,采用的元器件也更高档,对稳定性和寿命都大有裨益。
硬盘与机箱风扇,用的都是+5V的接口,实际安装的时候,要注意将硬盘与机箱风扇,分别接在不同的+5V输出线上,以获得最合理的利用。这类细节问题,实际操作时要注意,这也是初学者容易忽略的地方。
七、性能测试
硬件安装完毕后,为了对服务器的性能有个全面的了解,笔者对2台服务器,都做了一些常规测试,下面重点介绍基于AM2 4600+的数据库服务器的成绩,最后将2台的成绩汇总列表,方便比较。
本次测试,采用了常用的测试软件:Sisoftware Sandra 2007及Sciencemark 2.0 32bit,操作系统为Windows 2003简体中文版,所有驱动均安装齐全。
Sisoftware Sandra 是一个偏向理论值的基准测试,它的测试项目非常齐全,但是由于Sisoftware Sandra 将测试项目分得特别细,所以某项测试成绩会与实际应用表现相差甚远,因为实际应用中,是整体性能的体现,并非纯粹依靠某个子系统,所以每个单项测试仅仅作为参考,需要将多个项目成绩综合考虑,才能较为准确的推断实际应用上的效果。Sisoftware Sandra本身也收集了许多配置的测试分数,这些分数对我们也很有参考意义。
1、首先测试CPU数学运算能力测试(CPU Arithmetic Benchmark)
这项测试的结果可以为我们提供CPU运算能力的参考标准,其结果对需要了解CPU运算的用户具有很高的参考价值。
这项测试里面有2个子项目,分别是整数运算性能(ALU)和浮点运算性能(FPU)。因为AM2 4600+已经可以支持SSE3的指令集,所以软件会自动附加上SSE3进行测试。
从结果看来,AM2 4600+此项成绩令人满意,整数运算能力比3.73G的P4 XE 965尚高出少许,如果再考虑到双核P4巨大的发热量,无疑AM2 4600+更为适合服务器使用。浮点运算方面,由于加入了Intel 开发的SSE3指令集的优化,Intel CPU分数都异常的高,AM2 4600+在浮点测试项目吃了软件优化的亏,甚至未能胜过P4 XE 840。
2、接下来的是CPU多媒体运算能力测试(CPU Mutil-Media Benchmark)
CPU多媒体运算能力,主要考察对多媒体文件(音频、视频)处理的能力。这个结果对工作站用户比较有参考意义,对网站服务器用户来说,基本上用不到这方面的要求,此项成绩,仅供参考。
与上一项类似,这项测试里面同样分为整数运算性能和浮点运算性能2个子项目。
在此项测试中,AM2 4600+成绩与P4 XE 840互有高低,基本上与P4 XE 840相当。
3、内存带宽测试 (Memory Bandwidth Benchmark)
这一项是针对内存带宽的测试。在服务器应用里,经常要快速处理庞大的数据运作,这对系统的数据吞吐、交换能力带来极高的要求。此项测试内容可以作为衡量服务器内部系统数据交换能力的参考。
此项测试成绩令人吃惊。AMD 凭着内置的内存控制器,一向都在此类测试中具有优势,不过此次测试的成绩却超出了我们的预料。DDR2 800的高频率和AMD的优秀内存性能强强结合,最终出现了这个遥遥领先其它平台的结果。
4、磁盘性能测试(Physical Disk Benchmark)
服务器的性能依赖于整体性能的均衡,按照著名的“木桶理论”,整个系统最低的子系统,将会决定整个系统的性能表现。而服务器里,在CPU、芯片组、内存、磁盘这几个子系统之中,发展最为滞后的,无疑就是磁盘子系统了。对一些访问量不大的服务器,由于磁盘读取的几率不高,所以用普通的SATA也可以满足,但笔者的网站,应用程序较多,访问量也日渐上升,加之有数据库等大型程序,所以采用SCSI方案,减少系统的瓶颈发生更加符合实际需求。
由于采用了SCSI硬盘,磁盘性能成绩远比普通的SATA为高,平均72M的读写速度以及7ms的随机寻道时间,都证实了SCSI的性能,依然远比桌面型SATA高的多。
5、科学计算能力测试软件: Sciencemark 2.0 32bit
Sciencemark 2.0包括了以下6项子项目,分别是(1)Molecular Dynamics分子动力学;(2)Primordia复数计算;(3)Cryptography密码学;(4)STREAM流体力学;(5)Memory Benchmark内存测试;(6)BLAS/FLOPS向量与矩阵运算/浮点运算。
Sciencemark也收集了2个平台的成绩,分别是基于P4 2.4G和双路Opteron 246的平台,我们就以Opteron 246的平台来作比较。
从测试成绩来看,AM2 4600+成绩大大高于双路Opteron 246,除了频率上的优势之外,AMD双核的高效能也是一大原因。在内存测试项目中,DDR2 800带来的优势也相当明显。
综合以上成绩来看,AMD Athlon 64 X2 4600+平台,虽然是单路双核的架构,却不逊色于以往双路的Opteron,作为一个中型网站的应用,已经绰绰有余。
以上主要是对数据库服务器的测试成绩的说明,为了节省篇幅,网页服务器的成绩就不一一分别罗列了,同时也为了方便对比,下面将2台服务器的测试成绩汇总列表如下:
测试项目 | 数据库服务器 | 网页服务器 | 对比幅度 |
CPU Arithmetic Dhrystone | 17356 MIPS | 8269 MIPS | 109.89% |
CPU Arithmetic Whetstone | 14686 MFlops | 9920 MFlops | 48.04% |
CPU Mutil-Media integer | 44842 it/s | 24563 it/s | 82.56% |
CPU Mutil-Media Float | 49007 it/s | 33212 it/s | 47.56% |
Memory Bandwidth Int | 8136 MB/s | 4853 MB/s | 67.65% |
Memory Bandwidth Float | 8040 MB/s | 4866 MB/s | 65.23% |
Physical Disk Drive index | 72 MB/s | 71 MB/s | 1.41% |
Physical Disk Random Access time | 7 ms | 8 ms | 12.50% |
Sciencemark 2.0 32bit | 1541.95 Score | 960.5 Score | 60.54% |
以上两组数据虽然是网页服务器与数据库服务器的对比,但由于网页服务器的配置大致与原先的数据库服务器相同,所以也可以作为新旧数据库服务器的性能对比参考。
在安装好所有硬件和接线之后,最后还需整理机箱内的线缆,用扎线带将线缆捆扎好。特别是机箱风扇附近的细小线缆,更是需小心整理,稳妥处理。捆扎线缆不单单是美观问题,整齐的扎线有利于腾出尽量多的空间,有利散热,更重要的是,可防止线缆不慎进入风扇等部分,造成风扇停转、短路等故障。虽是小小细节,如果不认真处理,很可能造成大故障,故此绝不能马虎。
经过紧张的安装和调试,本次DIY服务器到此就告一段落,2台服务器终于可以上架运行了。在实际运行中,AMD 双核CPU性能表现良好,而依靠泰安S3950G2NR专业服务器主板,整体性能更是得以平稳发挥。升级后,数据库服务器的平均CPU占用率,从原来的60%下降到15%左右,提升非常明显。网页服务器虽然CPU没有升级,但是由于升级了主板、内存和SCSI硬盘,平均CPU占用率,从原来的15%下降到9%左右,也有相当幅度的改善。这对以后笔者扩展网站服务,提供了一个良好的硬件基础。此次DIY,希望能给各位DIY爱好者一个参考,欢迎各界朋友交流切磋,提出更好建议!
笔者在今次DIY服务器过程中,得到深圳亿时空www.newsky.net.cn 等友好单位的技术协助,在此特别致谢。