經常在項目中碰到別人在問性能相關的問題。典型的問題如:“我的虛擬機感覺比PC慢”,“這次項目中一台服務器承載多少用戶”,“為什么你們的帶寬比XX公司的高”等等。
1.關於雲計算和桌面雲
雲計算和虛擬化之所以存在,是有一個理論基礎的,那就是原有的硬件利用率不高,各種資源大部分時候都是較輕的負載,進行雲化改造以提升利用率。在桌面雲中,
就是假定原有的PC資源過剩,如CPU大部分時候都是比較低。如果原有的PC就是一個性能要求非常高的PC,那么建議這種設備要謹慎變成雲桌面,如圖形工作站、游戲、
視頻監控等場景。也就是說如果客戶原有的痛點是PC的某種性能不足,那就不要上桌面雲;桌面雲解決的是運維效率和信息安全的問題,跟PC相比,用戶體驗會略有變差,
大部分人對這種變化並不敏感,不排除少部分人對這種變化特別敏感,這種情況下要提前跟用戶做好一個宣傳。
2.關於用戶體驗的性能
用戶體驗最直接的感受是我的虛擬機是否流暢,對應的最核心的技術參數是操作響應時間,如用戶動作“移動鼠標”,鼠標在多長時間移動到指定位置,如果這個時間太長,
人就會感覺鼠標粘滯,點不准;動作“雙擊文件”,系統響應是多長時間內打開文件,這里涉及到應用軟件啟動,打開磁盤文件,如果文件有一些關聯控件,應用軟件又會
打開一些DLL庫,這些都是隱藏在用戶的一次點擊動作中。很遺憾,操作響應時間是無法准確度量的,這個用戶動作也跟用戶心理預期有關,如客戶的習慣就認為移動鼠標
的響應時間就應該遠比打開文件的響應時間要短。再舉一個用戶心理期待的例子,如游戲玩家,一般鼠標就不能滿足他們的需求,要高級的鼠標,高級的PC才能滿足,反映
到測試數據只是毫秒級的差異,但不同的操作者是有感知的。
響應時間是很難測量的,也很難有評判標准,只能從其他容易測量的相關資源指標得到系統的性能,這就是CPU、內存、帶寬和磁盤IO。
CPU:CPU的參數跟應用軟件和使用場景強相關,如同樣是呼叫中心,基本相當的硬件配置,有的運營商呼叫中心1台服務器能承擔60用戶,有的能承擔40用戶,
某電商的呼叫中心甚至只能承擔20個用戶左右。有幾個經驗結論:CPU主頻越高,用戶體驗越好;如果應用軟件在多核下有優化,給VM分配更多的虛擬機核,用戶
體驗也會提升,會導致所有人的體驗都差,服務器物理CPU低於70%時,所有人的體驗感覺都會較好;如果由廠家宣稱一台服務器能支持100個用戶,從實踐來看,
那基本就是在吹牛,如果不考慮用戶體驗,1台服務器創建1千VM也是可以的。
內存:一般情形而言,內存越大,體驗也越好。如果內存不足,操作系統會自動把部分內存交換到磁盤,這會增加磁盤IO壓力和CPU的壓力。從一般情況而言,
長久不關閉Windows,內存碎片會導致性能體驗變差,這種情況是Windows的弱點,並非桌面雲特有。
帶寬:一般人認為網絡帶寬越大,體驗越好,實際上真正影響體驗是網絡響應時間,帶寬只是表面測試的結果,核心指標是RTT(round trip time,用ping 工具得到
的響應時間)。經過的網絡設備越多,RTT時間就會變長,特別在無線網絡下,這個指標很難控制。一般情況下,帶寬越大,RTT越短,體驗越好;帶寬這個指標更好
衡量,所以一般就以帶寬作為指標了。
磁盤IO:一般的程序在進行磁盤讀寫時,程序都是暫停等待,等待的時間就是核心的體驗指標--IO響應時延,但這個指標也是很難測量,跟應用相關,也跟硬盤類型相關
(顯然SSD比磁盤好,SAS盤比SATA盤好)。容易測量的指標是IOPS(每秒IO次數),一般來講IO次數越多,存儲負荷越重,體驗越差。很多程序為了減少磁盤IO,
加入cache技術。一般的VM的操作系統都有 cache,cache技術的引入能提升用戶體驗,但對數據可靠性是一個挑戰,應用程序的一次寫操作,這個數據可能被VM操作
系統緩存在內存中,也可能被緩存在一體機的SSD,或者IPSAN的cache中。
3.關於協議的帶寬
某公司在很多項目中都宣傳帶寬最低,這樣對客戶的網絡帶寬要求就會降低,好處似乎非常明顯(如前文描述,實際項目中的網絡時延而不是帶寬,
才是用戶體驗的關鍵)。客戶對這種說法都比較理解,通俗易懂,但沒有看到事情的另一面。某使用合作版本的項目在用來一段時間桌面雲后,有一點時間內部論壇
上熱炒的一個話題,認為桌面雲比較模糊,影響視力健康,對IT管理員形成了不小的壓力。經過一段時間研究,發現根本原因是項目中的畫質本身就比較差。畫質是可以
用技術指標來衡量的,主要是用一個叫PSNR(峰值信噪比)的指標來衡量。這個指標反映在經過壓縮、傳輸、還原后的圖像跟原始圖像的差異,圖像差異越大,PSNR值
越小,人眼的感覺就是圖像模糊、失真。顯然,圖像壓縮率越大,帶寬就會越小,圖像失真度就會越大。該項目中后來為了消除大家的怨氣,調整了默認的圖像壓縮率,
體驗提升了一些,帶寬也增加了不少。雖然未徹底解決問題,但也緩解了一下壓力。
圖像的處理是一個非常復雜的技術,一般廠家都是全屏采用一種壓縮率做壓縮,這樣協議軟件最簡單,潛在的問題也最多。在華為自研的HDP協議中,采用了一些特殊的
技術來兼顧用戶眼鏡的體驗和帶寬的平衡。經過華為的研究,文字才是傳遞信息的主要載體,人的眼鏡對文字最敏感,會盯着看並仔細理解信息,對圖片就是一掃而過,
看到一個概貌即可,並不需要仔細分辨。因此華為在圖像處理上,會自動識別文字,對這部分圖像采用無損壓縮,對屏幕中非文字的圖像會采用合適的壓縮算法來壓縮,
由於文字部分采用無損壓縮,會導致帶寬增加,采用cache技術來降低帶寬,這會在VM和客戶端上都增加一部分內存的需求。這樣最終實現了畫質和帶寬的平衡。如果
把各廠家的桌面雲放在一起對比,用戶就能直觀感受華為的桌面雲看起來色彩更艷麗,眼鏡感覺好一點。
還有聲音,一般廠家為了降低帶寬,默認采用較低的采用率和較高的壓縮率,語音會出現不清晰,偶爾也會出現刺耳的爆音。華為HDP協議為了提升用戶體驗,采用了
較高的采樣率,自動識別語音模式和音樂模式,自動切換不同的壓縮算法和壓縮率。這些為了保證用戶體驗的技術,帶寬也是略有增加。
幾句話總結華為的體驗效果就是:文字清除,眼睛舒服一點;聲音清晰,耳朵舒服一點;用戶自主維護,管理員身體舒服一點。
4.關於配置器中的性能參數
從上面的描述,大家可以看出桌面雲的性能還是一個非常復雜的系統工程問題,是跟客戶的應用和使用模型強相關;也許現在性能滿足客戶需求,未來幾年客戶的應用
升級,又有可能碰到客戶抱怨體驗變差。實際上IT中所有的軟件都面臨這個問題,IT中所有的產品都是客戶場景的一個環節而已,並不是一個廠家端到端提供了所有的
硬件和軟件;只要踏入了IT行業就面臨第三方軟硬件,而多廠家集成后的性能和體驗不是單一廠家所能控制的,大家只能通過項目去總結經驗,不斷去適應;
也就是說出問題是必然的,只是或多或少的事情,華為不可能把所有事情包圓了。這點跟電信領域的封閉系統完全不同。事情的好的方面是,這里就存在服務收費的
機會,當然,如果把服務機會當成問題和投訴去免費處理,那又另當別論了。
為了簡化一線銷售的難度,產品提供了配置器作為參考。配置器內置了研發對已交付項目的歸納和總結,適用於大多數場景,但不排除在個別場景不適用,出現問題。
最佳的方式是客戶真正在系統上進行小規模的辦公,以測量最佳的硬件配比。如果一線采用配置器中默認業務模型配置,最后客戶性能體驗不佳,大家不要責怪研發,
這個業務模型是供大家參考的,並非放之四海而皆准的東西。