实际实验中的服务器平台评测

来源:互联网 发布:取消数据库紧急模式 编辑:程序博客网 时间:2024/06/05 11:58

本文仅将实际操作结果展示出来,由于作者水平尚且有限,故而未能做出深度的分析,还请见谅!

/***************************************************************************************************************/

最近做一些实验,因为需要把语料导入数据库方便数据统计,因此在自己的台式机上搭建了平台,其软硬件配置如下:

项目

配置

硬件

主板

Intel G31 Series

CPU

Intel Pentium E5200 Dual Core 2.5GHz

内存

2GB DIMM x2  DDR2-667

硬盘

WD 320GB 7200rpm

软件

操作系统

Microsoft Windows 7 Professional x86

数据库

Microsoft SQL Server 2008 Express

Java运行时

Java(TM) SE 1.7.0_25-i586

在此配置下悲剧地跑了将近三天,在程序运行初期,手工统计运行时间为120/秒,但是到了运行末期,几乎每秒钟只能插入5条左右,这悲剧的速度实在让人捉急!

但是两天的时间消耗也并没有带来多好的结果,很多行莫名其妙的消失了(未能成功插入数据库),因此计划将平台改为服务器平台,由于手头当时有Windows Server 2008的正版授权,尽管也拿到了Windows Server 2012的正版授权,但是镜像仍然没有拿到,因此先使用了2008版本的服务器平台,在硬件配置不变的前提下,软件环境如下:

项目

配置

软件

操作系统

Microsoft Windows Server 2008 R2 Enterprise x64

数据库

Microsoft SQL Server 2008 Enterprise

Java运行时

Java(TM) SE 1.7.0_25-x64

很幸运,本次执行数据导入仅花费了将近一天的时间(约20小时)。这样的时间消耗原本已经提高了很多,但是对于仅有两百万条的记录来说,这种速度还是很低的,而且当初的情况还是出现了,只是没有那么严重,在导入过程的后期,每秒钟执行的SQL语句条数也仅在10条左右。从程序本身分析,由于调用的驱动包是Microsoft提供的sqljdbc4.jar版本,据说该驱动包本身就存在性能较低的问题,再加上本人也刚刚开始从事Java程序的开发,因此对于数据库这块还没有用批量插入这样的功能(主要是开发前期代码逻辑未能组织好),所以逐条插入的操作方式本身存在一些问题。

抛开程序的因素(因为这里使用的是同一版本的代码),仅比较软件平台,发现专职服务器的操作系统性能上还是要比普通的个人桌面操作系统要高一些,尽管用户体验不能相比(毕竟这也不是重点)。因此考虑使用微软宣称性能大幅度提高的2012版本平台进行再次测试,尽管这个测试对于我来说没有太大意义,因为将数据导入数据库才是我最终的目的,而这个目的我已经达到了,但是鉴于2012版本的平台可能会给我带来更高的查询效率,因此我认为这个想法是值得一试的。所以在再到2012版本的平台软件之后,开始进行部署:

项目

配置

软件

操作系统

Microsoft Windows Server 2012 Standard x64

数据库

Microsoft SQL Server 2012 Enterprise x64

Java运行时

Java(TM) SE 1.7.0_25-x64

太令人振奋了,在此平台上同样的数据导入任务仅用3.5小时就完成了。之所以说很幸运,一来是我已经做好了明天再查看进度的计划了,服务器上的性能计数器也能给我计时(数据导入过程中CPU的使用率较高),但是吃完晚饭回来竟然发现程序已经跑完了,而且数据一行也没有丢失(当然,在2008版本的平台上也没有出现数据丢失的现象,至于Win7平台上为什么会出现这种情况,我也表示很奇怪),这简直是一个天大的好消息。毕竟插入效率提升的话,相信查询效率也能有大幅度的提升,这对以后的工作是一个再好不过的消息了。