close

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

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

 

 

第八篇:<虛擬盤的負載能力:下>



神奇的 2/8 原則

首先 我來解釋一下什麼 2/8 原則 .
二八原則是 19 世紀末 20 世紀初意大利經濟學家帕累托提出的,這個原則很簡單:
任何一組事物中,最重要的只佔其中約 20% ,其餘的 80% 雖然是多數,但是卻是次要的。
比如 :

  80% 的銷售額是源自 20% 的顧客;


 

  80% 的電話是來自 20% 的朋友;


 

  80% 的總產量來自 20% 的產品;


          80% 的財富集中在 20% 的人手中;
非常簡單的一個原則 , 但是現實生活中 , 你會發現這樣的規則幾乎是無所不在的 .
基於 2/8 原則 , 在虛擬盤的應用上 , 我們可以引申出內容分級存儲管理的概念 .

什麼是內容分級存儲 ?

是指我們將所有可以用來存儲內容的介質 , 按照性能的不同 , 分成多個級別 , 在進行存儲的時候進行優化選擇 , 將最常用的數據存儲在性能最高的介質中 , 依次類推 , 將最少用到的數據存儲在最廉價的介質上 , 實現速度和容量並重 , 同時造價盡可能的低廉 .
根據 2/8 原則 .80% 的顧客只玩 20% 的遊戲 , 那麼我們只要把這 20% 的遊戲搞的很快 ,就能滿足 80% 的顧客需求 . 這點 , 可以根據網維大師上的 DP 值排行就看的出來 .
再根據 2/8 原則 , 大部分的遊戲 ,  80% 的運行時間裡 , 往往只讀取其中 20% 的數據 .這一點有根據嗎 ?  , 好好的觀察一下 , 我們會得到這麼一個結果 :
魔獸世界這個遊戲雖然有 10 來個 G, 但是進一次遊戲 , 從啟動圖標開始一直到遊戲畫面中 , 需要讀取多少數據呢 ?
答案是 : 只要 200M! 在遊戲裡玩上 1-2 個小時 , 總共讀取的數據也就 500M 而已 !
XP 裝完要至少 1.5G, 但是啟動一個 XP 到桌面 , 需要讀取多少數據呢 ?
答案是 : 只要 250M!

同樣的例子還有很多 , 我們對市面上幾個常見的遊戲均進行了測試 , 結果如下 :

永恆之塔 500MB          
穿越火線
 600MB
QQ 飛車
 95 MB
反恐
 OL 240 MB
QQ 炫舞
 200 MB
QQ 三國
 100 MB
天龍八部
 130 MB
魔獸爭霸
 3 100 MB
夢幻西遊
 30 MB
誅仙
 100 MB
QQ 尋仙
 470 MB
傳奇 50 MB

魔獸世界 200M

除了 ​​穿越火線 ,QQ 尋仙等幾個騰訊出的 BT 遊戲之外 , 大部分遊戲需要讀取的數據都非常的小 . 在實際遊戲過程中也是一樣的 , 除了切換地圖 , 絕大多數的時間 , 遊戲基本都不讀什麼數據的 .

結論就是 , 儘管遊戲容量非常之大 , 但是其中經常會用到的數據其實非常非常少 .

根據上述分析 我們的答案就很簡單了 .

目前的常見介質的特性如下表所示 :

 


 

 

介質種類

性能(64K隨機讀取IOPS)

容量

價格

內存

10萬以上

常見4-8G

1XX元/2G

固態磁盤(OCZ SSD)

2000

常見32G-128G

11XX元/60G

SAS硬盤(15K轉速)

200

常見74G-300G

9XX元/147G

SATA迅猛龍(10K轉速)

120

150G或300G

9XX元/150G

普通SATA

60

常見160G-2000G

7xx/1500G

 



(  1)
內存是性能最好的存儲介質 , 那麼我們就應該將最常被讀取的數據放在內存裡 .
其次固態硬盤也是非常好的介質 , 那麼我們就應該將最熱門的遊戲放在固態硬盤裡 .
…………………………………
最後 ,SATA 硬盤容量又大又便宜 , 那麼我們就把那些最冷門的遊戲放在 SATA  .

 

 

內容分級存儲的典型應用

來看看上次網吧流量測試當中的服務器截圖 .

33.jpg  

這就是非常典型的內容分級存儲的案例 .
服務器內存共 8G, 我們拿出了 7G 內存用作虛擬盤緩存 遊戲放在 個硬盤上 ,G 盤為120G 的固態硬盤 ,H 盤和 盤是普通的希捷 11 代的 1T 硬盤 安裝遊戲一共 1.8T 左右 .
根據上面這個圖 我們看到了什麼結果呢 ?

1)
7G 的內存 產生了平均 74% 的緩存命中率 就是說 虛擬盤 74% 的負荷被內存解決了 .

2)
放在固態硬盤上的 100G 遊戲 被讀取的數據量為 86616M, 這個數據量是所有硬盤讀取數據量的 86/(86+22+9)=73.4%

3)
盤和 盤 ,2 個硬盤讀取的數據總量相加 只負載了整個虛擬盤負荷的 7.1%


結論 在這個服務器上 我們成功的利用了 2/8 原則 以 7G 內存和 100G 固態硬盤的代價 解決了虛擬盤服務器中 93% 的負載 這 93% 的數據 有著比本地硬盤快的多的速度剩下那 7% 的數據 也擁有和本地硬盤相近的速度 這就是分級存儲的驚人效率 !

這個案例非常完美的解決了虛擬盤的速度問題 那麼負載能力會成問題嗎 ?

 

內容分級存儲服務器的負載能力


這麼一台典型的 採用了分級存儲的服務器 能負載多少的機器 ?
還是採用上面的分析方法 先找服務器瓶頸 .
服務器的瓶頸有可能存在這些方面 :

1.
CPU 

2.
網絡 包括交換機 網卡 網線等 )

3.
軟件 虛擬盤軟件 ,WINDOWS 操作系統本身 )

4.
各個硬盤

仔細分析一下 :

1.
CPU: 以酷睿 5200 這樣 CPU 來說 在絕大多數時候 ,CPU 佔用不超過 10%, 所以 CPU 不會成為瓶頸 .

2.
網絡 前幾篇的分析結果至少說明 單個網卡輸出 50MB/S 是沒有任何問題的 那麼如果流量不超過 50M, 網卡也不會是瓶頸 如果超過 50M, 我們還可以通過多網卡綁定 匯聚分流等方式來解決 事實上我們測試網維大師的虛擬盤服務器上網卡是可以輸出 90MB/S以上的 所以 網絡也不會是瓶頸 .

3.
軟件 :, 網維大師在 WIN2003 上可以輸出 200MB/S 以上的速度 多網卡情況下 ), 同時 ,網維大師的新虛擬盤可以同時負載上千個連接 所以這個也不是瓶頸 .

4.
硬盤 固態硬盤的負載量是 SATA 硬盤的 愛生活愛順網 倍 按照 SATA 硬盤 4MB/S 的性能 那麼固態硬盤性能只要超過 4*愛生活愛順網=30MB/S, 那麼固態硬盤就不會是瓶頸 .根據前幾節的測試 固態硬盤的隨機讀取能力可以達到 100MB/S 以上 所以 SATA 硬盤還是瓶頸 .

結論 如果網絡沒有大問題 如果我用多個網卡分載 那麼這個虛擬盤的瓶頸仍然是SATA 硬盤 如果客戶機不斷的增加 在其他部分出問題之前 ,SATA 硬盤已經頂不住了 .那麼我們就只要計算一下 ,SATA 硬盤在這個案例中的極限負荷能力就行了 .

還記得上一篇中 我們計算的傳統虛擬盤的負荷能力吧 ?
單硬盤的負荷能力為 18 台機器 .
這個服務器有 個 SATA 硬盤 ,, 那麼就能負荷 36 台 .
這 個硬盤負荷的數據量為總數據量的 7%, 那麼該服務器的負荷能力為 36/0.07=517 台 !
就是說 當客戶機達到 517 台時 ,2 個 SATA 硬盤的負荷能力達到極限 .
這還是留了 倍性能餘量的結果 !
就算是真的達到 517 台客戶機 ,Sata 硬盤到達閥值 受影響的也僅僅是 7% 的數據 另外93% 的數據仍然流暢無比 !
這 是真的嗎 ?

如果你仍有懷疑 那我們反過來再算一次 看看 517 台客戶機的時候 工作情況是怎樣的 .


每用戶平均流量為 75KB/S

那麼 500 台客戶機在線時 總平均流量為 75*517=38.4MB/S

我們留出三倍餘量 突發速度就是 38.4*3=115MB/S

那麼我們用兩張網卡分流就完全可以應付 !

這 115MB/S 的流量 內存緩存掉 74%, 還剩下 :115*26%=29.9MB/S

這 29.9MB/S 的流量 固態硬盤分掉 73%, 還剩下 :29.9*27%=8.07MB/S

這 8.07MB/S 的流量 ,2 個 SATA 硬盤平分流量 剛好是 SATA 硬盤的極限 .
現在 我的朋友 您還有懷疑嗎 ?
那麼 我再安全一點 考慮到用戶太多以後造成的突發情況可能會更大 那我不留 倍餘量了 我留 倍的餘量 讓這台服務器去帶 300 台機器 .
就這樣 只帶 300 台 您放心了嗎 您敢帶嗎 ?
我敢 我在 月份的時候 在我自己的網吧裡 就用這麼一台機器帶了 275 台客戶機跑所有的遊戲 很流暢 很舒服 很安心 一直到 月底 現在 我有了更好的方案 才把這台服務器換了下來 .

這一篇的最後 我們來算個帳 這麼一台可以穩定的帶 300 台機器的虛擬盤服務器 裝了 1.8T 的海量的遊戲 還能讓你的顧客在 93% 的時間裡 都能感受到本地硬盤還要快的速度 這個機器要多少錢呢 ?

主板 :intel3000 (1200 左右 )

Cpu: 酷睿 5200 (420 左右 )

內存 :DDR II 2G*4 共 8G (600 左右 )

硬盤 :OCZ 120G 固態硬盤 *1 (2000 左右 )

希捷 7200.11 硬盤 1T*2 (1400 左右 )

機箱 電源等 (500 左右 )
-----------------------------------------


總計 :6120 

 

一些結論和建議

1.
在我們的方案中 
內存是 最最最最最最 值得去投資的部分 想要虛擬盤性能好 無論如何請盡可能的加大服務器的內存數量 ,4G 是最起碼的 一般達到 8G 才會開始產生質的飛躍 如果你的老闆真的很窮 窮到連 8G 內存都買不起的話 請告訴他 把服務器機箱賣了吧 寧可讓服務器裸奔 也要加滿內存 !

2.
不要迷信 SAS 硬盤 把買 SAS 硬盤的錢換成內存吧 !1 個 300G 的 SAS 硬盤要 1500 塊 ,把它換成 10G 內存 效果會好 10 倍 !

3.
網維大師的虛擬盤程序足夠穩定 區區 500 台機器搞不垮虛擬盤 .

4.
除了 ​​最熱門的 100G 遊戲 其他 2T 的遊戲只要用 SATA 硬盤就足夠了 看見有人用SAS300G 硬盤 *6 的方案 我的心在滴血 為網吧老闆滴血 !

 5.
緩存命中率決定了虛擬盤的速度以及負載能力 是虛擬盤中最有價值的指標 命中率取決於算法和內存大小 基於網維大師及其優秀的緩存算法 剩下唯一要做的 還是那件事情不顧一切的增加服務器的內存吧 !

6.
一般建議使用內存 小容量固態硬盤 大容量 SATA 硬盤這樣的組合方式 大家也可以根據自己的喜好來自由搭配 內存和固態硬盤的效果是非常好的 但是既昂貴 容量也有限 我們不可能把所有的遊戲數據都放在裡面 我們要做的 就是要把最常用的數據放在內存中 次常用的放在固態硬盤裡 不常用的數據放在 SATA 硬盤裡 這就是所謂的分級存儲管理 .


這一篇的最後 我提一個問題吧 ​​.
這樣的方案已經是最好的方案了嗎 ?
我的答案是 :NO!
下一篇 我來講講另一種更有意思的方案 .


(未完待續)

 

arrow
arrow

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