先來說說為什么會有這篇文章吧。從朋友那里搞來個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真的很不給力,不知道是不是免費試用加了限制。數據庫性能就看你跑的應用有多大規模才夠用了,這是我現在免費狀況下能夠拿到的最好的測試機了。