先来说说为什么会有这篇文章吧。从朋友那里搞来个Windows Azure CN的测试帐号,在公司的时候领导的朋友有一个阿里云的服务器,平时部署小东西都往上面丢,不过那是人家的东西,还有其他的应用跑在上面,不敢随便折腾。这次有了这个测试服务器,总算可以测试一下云主机的性能如何了。不过我不是专门搞测试的,所以也就有了标题中的“超业余”了。不过虽然比较业余,但是也能作为大家选择云主机的一个基本参考了。
虚拟机环境介绍
测试帐号是免费试用的,所以当然就有一定限制,不能用太牛的虚拟机,我这里用的是A6(4核,28G内存)。其实单单看内存已经感觉很牛了。
操作系统原先用的是Windows Server 2012 R2 DataCenter,但是我的磁盘测试软件在WIN8风格的窗体布局下有些显示不全的BUG,所以后来我换用了Windows Server 2008 R2 SP1。因此以下的部分截图有些是在2012上截的,有些是在2008R2上截的,不过并不影响测试数据,硬件配置我选的都是一样的。
CPU性能测试
看着貌似很强大的虚拟机,4核28G内存,碉堡了有木有。让我来好好看看他的实际性能。
SuperPI 32M运算测试
这里用经典的SuperPI跑了一下32M,只跑了一个,测试了一下单核心性能,多核心以此类推,我就不开4个了。可以看出性能真的不怎么的,不知道是免费试用阶段给的CPU资源不给力还是怎么的,单核心性能基本上只有我的E3 1230 V2的大约三分之一到四分之一之间。大家可以跑一下SuperPI试试看,不用跑32M,100万位的话在我的E3 1230 V2上需要10秒,在云机上需要36秒。看着这个性能瞬间心都凉了,不过我还是继续测试下去吧。
AIDA64 GPGPU测试
这个测试其实用来跑显卡的,但是附带的CPU测试也能跑跑试试看性能。可以看出CPU性能虽然让我心凉了,不知道是加了限制还是什么的,反正就是太不给力了,不过内存这里看上去数据还不错,基本上是双通道DDR3差不多的实力,没缩水。既然这样那么就让我测CPU的同时顺便测试一下内存吧。
AIDA64 缓存与内存测试
可以看出内存这块基本上没缩水,比起CPU单核性能来说良心的多了。
Prime95 Blend测试
这里采用Blend测试,4根线程一起来。可以看出我从25号跑到了27号,接近60个小时左右,作为一台服务器的稳定性要求来说要被Blend跑死几乎是不可能的了,就算单核性能不给力,至少在稳定性这点上还是可以放心的。
磁盘性能测试
系统默认安装好之后有2个磁盘,一块100多G的系统磁盘,一块接近300G的临时磁盘。系统盘是用来放系统的,临时盘用来放虚拟内存之类的东西。除此之外还可以另外挂载附加数据磁盘,我挂了一块1TB的附加数据磁盘。让我对这几个磁盘性能都测试一遍。
HD Tune 基准读取
这3张图分别是系统磁盘,附加数据磁盘,临时盘。随后所有的测试图片都会按照这个顺序,之后我就不再冗述了。
可以看出系统磁盘和附加数据磁盘应该是属于同一类型的,性能没差多少。但是临时盘的性能就好的多了,估计因为是拿来放虚拟内存的,所以为了不造成瓶颈,给的性能特别给力,有可能是SSD或者内存盘之类的东西。
另外要说明一点,虽然我只放了这几张图,但是其实我测试过多次。每次都会有偏差,而且不是一点点,估计和他们的平衡算法有关系,我这里只给出比较在平均范围内的一组图片。
HD Tune 文件基准
系统盘和附加数据磁盘看着有点奇葩,但是考虑到云上平衡算法的干涉其实也还算正常。临时盘的性能仍旧丧心病狂。
HD Tune 随机读取
附加数据磁盘比起系统盘几乎翻了一倍的数字。临时盘继续开挂我就不说了。
HD Tune 附加读取
附加数据磁盘比起系统盘几乎翻了一倍的数字。随后我会用AIDA64进行更漫长的测试来验证。不过临时盘你仍旧那么碉,你爸妈知道吗?虽然突发速率在这张图上莫名其妙的降低的有点严重。
AIDA64 ReadTestSuite
ReadTestSuite的测试时间还是比较短的,有可能存在平衡算法的误差,系统盘和附加数据磁盘和用HD Tune测试的时候差不多感觉。接下来的几个测试都是测试时间比较长的,应该可以作为比较靠谱的评测结果了。临时盘我就不说你什么了,你快已经是全宇宙皆知的了..............
AIDA64 LinearRead
你们看上面的时间就知道我跑了很久了,基本上可以忽略掉平衡算法了。附加数据磁盘的线型读取性能几乎是系统磁盘的2倍,但是可以看出系统磁盘的BlockSize是128KB,而附加数据磁盘是8M。这个BlockSize我是设置为AUTO自动判断的,不知道是否由于这个原因造成的。临时盘我就不说你什么了。
AIDA64 RandomRead
在随机读测试中,系统盘和附加数据磁盘的性能几乎相同,而且这里都是使用的64KB的BlockSize,应该算是比较公正的了。临时盘我能把你拆了带回家吗?
AIDA64 BufferedRead
这个测试会反复读取同一块磁盘区域以测试缓存性能。可以看出系统盘和附加数据磁盘都给出了很好的成绩,并且几乎相同。但是临时盘却突然间不知道为什么不给力了。我刚还说要把你拆回去你就吓成这样了吗?
AIDA64 AverageReadAccess
在这个测试中,可以看出附加数据磁盘比系统盘的延迟要好,测试时间也足够了,应该算是比较靠谱的一个结果了。临时盘又一次开挂了.................
磁盘测试简要总结
临时盘的快我就不说什么了,放虚拟内存绝对放心。系统盘和附加数据磁盘在某些地方几乎打成平手,不过某些项目附加数据磁盘几乎是系统盘的2倍。云机上会平衡各个虚拟磁盘,所以短时间的测试有可能存在一定偏差。但是AIDA64的后面几个测试都是挺费时间的,应该可以作为参考标准了。
数据库性能测试
这个本来没打算放在这里的,不过既然我随便测试过了那么就一起丢上来吧。
Windows Azure上的MSSQL也是分性能级别的,我这里用的是一台STANDARD的,性能级别是S1(15DTU),看资料上说这个性能级别的是每分钟283个事务。
MSSQL我这里虽然有性能测试软件,不过貌似不兼容云上的这台2014的。那么就随便插入100万条数据然后SELECT一下看看吧,不要在意细节,说了我是业余的了嘛。(^-^)
测试表结构如下:
1 CREATE TABLE [dbo].[TestTable] ( 2 [Id] INT IDENTITY (1, 1) NOT NULL, 3 [Title] NVARCHAR (50) NULL, 4 [Num] INT NULL, 5 PRIMARY KEY CLUSTERED ([Id] ASC) 6 );
100万行的测试数据插入脚本如下:
1 WITH Seq ([Title], [Num]) AS 2 (SELECT N‘测试插入数据‘,1 3 UNION ALL 4 SELECT N‘测试插入数据‘,num + 1 5 FROM Seq 6 WHERE num < 500000) 7 INSERT INTO [dbo].[TestTable] ([Title], [Num]) 8 SELECT [Title], [Num] 9 FROM Seq 10 OPTION (MAXRECURSION 0) 11 GO 12 13 WITH Seq ([Title], [Num]) AS 14 (SELECT N‘测试插入数据 他喵的‘,1 15 UNION ALL 16 SELECT N‘测试插入数据 他喵的‘,num + 1 17 FROM Seq 18 WHERE num < 500000) 19 INSERT INTO [dbo].[TestTable] ([Title], [Num]) 20 SELECT [Title], [Num] 21 FROM Seq 22 OPTION (MAXRECURSION 0) 23 GO
插入这100万行总共用了大约740秒。
随后查询一下试试看性能
查询了一下,用了大约10秒钟。
总结
虽然我测试的很业余,不过基本上还是可以看出大致的性能了。磁盘和内存性能基本上够用,CPU真的很不给力,不知道是不是免费试用加了限制。数据库性能就看你跑的应用有多大规模才够用了,这是我现在免费状况下能够拿到的最好的测试机了。