close

【電腦技術】(轉)最具有權威性的虛擬盤終極教程(七)|安心電腦維修聯盟

文章出處:http://bbs.icafe8.com/thread-58821-1-1.html

  

  

第七篇:<虛擬盤的負載能力:上篇>

 

 

        回答一些朋友的問題
22樓的朋友說: 為了更好的利用客戶機硬盤空間,我等還是採用本地加虛擬盤這種方式為客戶提供遊戲服務。

我的回答:如果你喜歡游戲運行的慢一點,如果你喜歡讓顧客等著遊戲更新,如果你喜歡那些麻煩事情,我是不會攔著你的,只要你喜歡,你安心,我沒有意見的.


42樓的朋友說:樓主洋洋灑灑一大篇理論,感覺都是紙上談兵而已。 

我的回答:我的理論我都實踐過,從07年下半年開始,我就在自己的網吧裡使用這樣的方案,那時候的虛擬盤軟件沒有一個能符合我的需求,於是我嘗試了很多種軟件,最終在我組合了3種虛擬盤軟件,加上SUPERCACHE,做出了一個無比複雜的龐大體系,雖然最終效果很好,但是過於復雜的體系導致完全不能推廣,直到今天,我能將方案簡化到人人都能看懂的時候,才能拿出這篇文章.
為了能把這個問題說的更加簡單明了,我從初稿開始,到現在一共修改了12次,測試那些數據,至少花費了近2個月的時間.如果這樣紙上談兵的話,只能說我的能力實在太差了,您實在是對我期望太高了點.
就像無憑無據,做什麼說什麼都是拼自己腦袋瓜想出來的.

43樓的朋友說:….
我的回答:同上

44樓的朋友說:你SA不SA啦,人家在順網論壇發,這篇文章一看就知道是為順網的虛擬盤寫的,我覺得下幾篇肯定就是為網維大師漂白的.

我的回答:這種方法是可以用在任何虛擬盤軟件上得到,雖然我拿網維大師的虛擬盤舉例,但是你完全可以用別的軟件.需要理解的是思路和方法,懂得方法,用別的軟件也可以達到同樣的效果.網維大師的虛擬盤是完全免費的東西,用或者不用,只是你自己的選擇.


50樓的朋友說: …………….(太長了,我不引用了)
我的回答:你的方法,我只能說,像是做夢一樣.你最後一句話,讓我被雷到了…這樣奢侈瘋狂的投資,居然只是和本地硬盤差不多?大哥,你看了我的文章了嗎?你知道本地硬盤有多慢嗎?


60樓的朋友問:IOPS是什麼

我的回答:IOPS意思就是指每秒硬盤所能完成的IO次數,就是讀取或者寫入的次數,這個數值隨著測試條件不同,會有很大的差別,我按照單線程,64k的條件來測試.一般的專業測試是32線程,512字節的條件來測試.IOPS可以用IOMETER這個軟件來測試.

64樓的朋友問:那麼硬盤到底用多少字節的好呢?
我的回答:格式化的時候字節越小越省空間,字節越大,出盤越快.參考值:500G用8K,1T用16K,1.5T用32K.


72樓的朋友說:請推薦個150台電腦的虛擬盤配置和做法~!
我的回答:我在文章最後會給大家一些具體的配置參考,但是只是照單抓藥是沒有用的,每個人的具體情況不同,正確的方法應該是理解方案的思想和精神,自己根據實際情況進行靈活的組合.

 

83樓的朋友說:講了這麼多,還沒講到重點了。

以上講的就是隨機讀取是很重要的,普通硬盤隨便性能是很差的。陣列是沒有用的,SSD才是牛B的。 

我的回答: 請允許我表達對您的敬意,我洋洋灑灑寫了萬餘字,您用樂5句話,40個字,就能說的明明白白,清清楚楚,由衷的佩服啊!


86樓的朋友說:這個方案感覺不怎麼對勁
我的回答:希望您能告訴我哪裡不對勁,我趕緊再改改.

以上,希望朋友們能踴躍提問,我當盡力解答,本人工作繁忙,如不能及時回复,還請諒解.
以下,繼續上一篇的話題,補充一張測試截圖.

        虛擬盤的速度實測

由上一節,我們得到一些基本的結論,在虛擬盤讀取的所有環節裡,硬盤是速度上的最大瓶頸,所有其他的因素,包括網卡,網線,交換機,軟件性能,操作系統平台等等,它們加起來所造成的延遲不到硬盤的1/10,所以,要提高虛擬盤最終讀取速度的關鍵就在於硬盤.
我們來看一個典型的測試,在客戶機上,用HDTUNE對虛擬盤進行隨即讀取測試.我們用內存進行讀取數據的緩存,這樣測試到的數據全部是從服務器中的緩存發出的,結果如下:

32.jpg  

結果可以清晰的看到,在64K區塊測試的時候,延遲1.2毫秒,是sata硬盤的1/10,同時流量也達到了53.6MB/S,這個速度是普通的SATA硬盤絕對無法望其項背的.是SATA硬盤的10多倍,是SAS硬盤的5倍,已經非常接近於固態硬盤的讀取速度了.

虛擬盤有多少的負載能力呢?
要回答這個問題,我們先講幾個概念,如果不能明白這幾個概念,那就難以理解整個體系的奧秘所在.

        基本名詞解釋
 什麼是緩存?
   在網維大師的虛擬盤中,會將部分物理內存用於存儲最常被讀取的數據,當客戶機請求讀取數據時,服務器會先在這些內存中進行尋找,如果在內存中有這些數據,則直接由內存發出,只有內存中沒有該數據,才會去硬盤中讀取.

 什麼是緩存命中率?
是指所有服務器發出的數據當中,有多少比例的數據是從內存中發出的,越高意味著性能越好. 比如50%的命中率意味著,每從服務器發出100M數據,其中50M是從內存中發出的,只有50M是從硬盤中發出的,這就意味著與不使用緩存的服務器而言,我們服務器的負載能力擴大了2倍.

 如何提高緩存命中率?
要想得到一個較高的緩存命中率,首先得有一個好的緩存算法,有了好的緩存算法能很大的提高命中率。 
其次,就是裝上盡可能多的內存。

        網吧中的真實負載情況

要想明白一個虛擬盤服務器到底能帶多少機器,首先得知道負荷會有多大,在一個典型的中型網吧裡,裝了1.8T的遊戲,究竟在營業的時候,會讀取多少的數據呢?這是很關鍵的問題,不知道朋友們是否認真的研究過這個問題,但是至少我在做這個測試之前,我還真的不知道這個準確的數字.

好吧,我們來看看這個測試,這個測試網吧是個典型的中型網吧,機器110台,來的客戶有學生,有民工,還有些上班族,生意一般,不好也不差.我們將所有的遊戲均部署在虛擬盤上,統計了2天的數據. 注意:是所有1.8T的遊戲,在客戶機的本地硬盤上,一個遊戲都不裝!

2天內所有的遊戲讀取數據量為448G.
根據收費系統的統計,2天內所有的客戶機在線機時總共為1730小時.
這樣計算下來每秒每客戶機的流量為: 448G/(1730小時*3600秒)= 75K/S
後來我們也測試了一些其他的網吧,雖然不同的網吧,不同的玩家行為會造成一些差異,但是大體上結果是相似的.

        傳統的虛擬盤的負載能力

根據上述的一個網吧用戶平均讀取流量,我們就可以評估一下,傳統的虛擬盤的負載能力.
我們考慮一個簡單的模型,假設這個傳統的虛擬盤服務器,只有一個希捷7200.11硬盤,同時沒有任何緩存機制,這種情況下,我們簡單的算一下,這個服務器能帶起多少機器.
對這樣一台服務器來說,因為硬盤的隨機讀取的能力僅為4MB/S, 網絡和其他因素應該可以輕鬆的達到4MB/S的能力,因此我們完全可以認為該服務器的性能瓶頸集中在硬盤上.
按照4MB/S的硬盤能力,我們計算硬盤的極限承受能力:
4M(硬盤隨機性能)/75K=54台.
意思就是說,按照75KB/S的平均讀取需求,該服務器的硬盤最多能承受54台機器在線.
實際上,為了應付突發的情況,我們應該為服務器留點餘量,不能讓服務器總是工作在滿負荷情況下,假設按3倍的餘量計算:
54/3=18台.
結論:這樣的虛擬盤服務器,在18台機器的負載情況下,大部分的時候,性能和本地硬盤相當.這樣的結論和我們經驗值是比較接近的.在實際網吧應用當中,我們是不敢將所有遊戲都部署在這台機器上,這點負載能力,太不夠用了,那麼,怎麼辦呢?

89樓的朋友在看到第六篇的時候,已經給出結論了,要提高虛擬盤的性能,出路就2個: 一個是用固態硬盤,二是用高內存做緩存,但是這兩種辦法都是非常昂貴的手段,網吧花的起這個錢嗎?
我的辦法就在下一篇: 第八篇:<虛擬盤的負載能力:下>

(未完待續)

 

 

arrow
arrow

    安心電腦維修聯盟 發表在 痞客邦 留言(0) 人氣()