使用內存虛擬硬盤提高ArcGIS Server併發性能的一種方法

 

 

 

使用內存虛擬硬盤提高ArcGIS server

 

併發性能的一種方法

wy


1  問題提出


1.1 概述

提高ArcGIS server併發性能的方法很多,本文討論在用戶硬件足夠強大的情況下(主要是內存足夠大),使用內存模擬硬盤來提高數據的讀取效率,以達到提高ArcGIS server併發性能的目的。

1.2 總體思路

爲了提高ArcGIS server併發性能,在假定其他條件都相同的前提下,使用Ramdisk軟件,將系統中的內存模擬成硬盤使用,然後將ArcGIS server中發佈2個相同的切片服務,其中一個服務的切片遷移至內存盤(即Ramdisk),另外一個服務切片存放位置不變(爲普通硬盤),然後在客戶端使用壓力測試軟件測試2個服務的併發性能,最終得出測試結論。

2  環境搭建


2.1 軟件環境

軟件名稱

版本號

用途

ArcGIS

10.1

平臺測試,包括server和桌面

Windows 2008

R2(64位)

操作系統

Ramdisk 64

1.6 (64位)

內存虛擬硬盤軟件

Crystal Disk Mark

3.0.1(64位)

硬盤速度測試軟件

Microsoft Web Application Stress Tool

1.1.293.1

壓力測試軟件

 

2.2 硬件環境

硬件類別

規格

CPU

Intel(R) Core(TM) i7 CPU  1.73GHz (8 CPUs)

內存

8G

硬盤

Hitachi HTS725050A9A364 ATA Device 500G,7200轉

顯卡

NVIDIA Quadro FX 880M

 

2.3 網絡環境

Intel(R) 82577LM GigabitNetwork

3  測試過程

3.1 硬盤讀寫速度測試


使用Ramdisk將1G內存虛擬成硬盤後,得出的數據讀寫速度截圖如下:


虛擬前(普通硬盤)



虛擬後(內存虛擬硬盤)

從內存虛擬前後測試硬盤讀寫速度的數據來看,內存和硬盤的速度相差大約70倍左右。

3.2 發佈切片服務

下面我們使用arcgis server發佈2個切片服務,這2個服務除了切片放置的位置不同(一個放在普通硬盤,一個放在內存虛擬的硬盤上),其他都一樣。這樣我們得到了這2個服務的地址:

http://192.168.32.153:6080/arcgis/rest/services/wychinaRam/MapServer

http://192.168.32.153:6080/arcgis/rest/services/tile/wychinaT/MapServer

3.3 壓力測試

由於專業測試軟件Load Runner的複雜性,本文使用輕量級測試軟件Microsoft Web Application Stress Tool作爲壓力測試軟件。該軟件有一個不足的地方,就是隻能靜態設置一個或者多個測試地址,而不能以一定規則測試某些地址,比如隨機選擇某行或某列的切片進行測試。本文選取5個固定切片地址作爲測試源,500個併發測試1分鐘,軟件截圖如下:

  



通用測試設置



內存虛擬盤測試設置


普通硬盤測試設置

3.4

測試報告


內存虛擬硬盤測試報告


普通硬盤測試報告

4  結論與思考

從以上測試報告可以看出,使用內存虛擬硬盤後,切片服務的平均響應時間由484.33毫秒下降到386.26毫秒。這個結論並不能完全反應出內存虛擬硬盤對服務性能提高的優勢,因爲內存的讀寫速度比普通硬盤提高了70倍左右。那麼問題出在哪兒呢?

我們先來看下影響ArcGIS server性能架構的一張圖:


影響ArcGIS server性能的各個環節

由上圖可以看出,從瀏覽器發出請求到接收到數據,需要經過大概6個左右的環節,每個環節都有可能成爲性能瓶頸,而GISServer只是這衆多環節中的一個。具體到本文當中,由於測試時選取的切片位置相同(比如每次都請求第8層的102行103列的切片),導致該切片在第一次請求時就已經被加入到了系統緩存(內存)中,以後每次請求都會直接從內存中加載而不會到硬盤上讀取,這樣,切片源是存放在普通硬盤還是內存虛擬出的硬盤中,就不那麼重要了。

如果能夠以編程的方式定製測試腳本,精確控制每次併發訪問的切片都位於不同的級別和行列,可以預見,就可以得到比較好的結論,比如性能上,內存虛擬硬盤能夠比普通硬盤的響應時間提高到70倍左右。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章