云計算興起雖然解決了數據中心里的一些問題,同時也帶來了一些新的性能問題。要知道云通?;谔摂M化技術搭建,允許多個操作系統實例或者租戶共享一個物理服務器,這意味著會存在資源競爭,如何將有限的資源合理分配出去,也將影響到系統性能?,F在人們對云服務的要求已經不是簡單的能用就行,而是要好用、要體驗好,對性能要求越來越高,這種體驗不是簡單地某項可量化的測量指標,而是一種具有一定主觀性的感受。人們通過感受來給出“好”與“壞”的評價,這個取決于應用開發人員和最終用戶的性能預期,這個很難用幾個測量的數據參數來衡量。下面,我們就來說一說與云計算性能相關的幾個重要因素,以便對性能因素有所了解。
延時
延時是操作執行之前所花的等待時間,一次應用程序請求,一次數據庫查詢或者是一次文件系統操作等都是有延時的,比如對于網站,從點擊鏈接到屏幕顯示整個網頁加載完成的時間,過高延時會令人沮喪,客戶可能會選擇到別處開展業務。延時包含有很多方面,是各種因素的累積,表1列舉了部分系統的延時,這些延時累加起來就反映了整個系統的反應時間,延時就是云計算性能的最直接表現。
延時的高低與云計算性能影響是很大的,延時的數據也不是一成不變的,時刻都處于波動之中,動態跟蹤可以從任意感興趣的點測量延時,還可以提供現實延時完整的分布情況。有些云服務關注的是平均延時,而有的云服務關注突發延時,具體要看應用業務類型,側重點是哪個方面,不管怎樣延時是云計算性能的最直接體現。
IOPS
IOPS是指每秒發生的輸入/輸出操作的次數,是數據傳輸的一個度量方法,對于磁盤讀寫,IOPS就是每秒讀和寫次數,隨機存取及循序訪問時的IOPS代表了性能特性。循序訪問是訪問存儲設備中相鄰位置的數據,一般和較大的數據區塊訪問有關,常見性能特性如表2:
吞吐量
吞吐量是評價數據處理執行的速率,在數據傳輸方面,用字節/秒或比特/秒來表示,在某些情況下,也用每秒操作數或每秒業務數表示,吞吐量取決于上下文環境。對于交互式應用來說,吞吐量指標反映的是服務器承受的壓力,在容量規劃的測試中,吞吐量是一個重點關注的指標,因為它能夠說明系統級別的負載性能。吞吐量的限制是性能瓶頸的一種重要表現形式,因此,有針對性地對吞吐量設計測試,可以協助盡快定位到性能瓶頸所在位置。通過提升系統的吞吐量,達到提升云計算系統性能的目的。
使用率
使用率經常用于操作系統描述設備的使用情況,比如CPU和磁盤設備,使用率指的是就是所消耗的CPU和存儲容量。對于服務所請求的資源,使用率描述在所給定的時間區間內資源的繁忙程度。使用率是基于時間的,或者基于容量的。使用率指標告訴我們系統的忙碌程度,當系統接近100%使用率,資源發生競爭時性能會有嚴重的下降。想象一下高速公路的收費站,使用率就相當于有多少收費站在忙于收費,使用率100%意味著你找不到一個空的收費站,必須排在別人的后面。
除了以上介紹的這些,當然還有很多性能因素。比如:響應時間,飽和度,瓶頸,工作負載和緩存等等,掌握這些性能參數也非常必要,在此不再詳述。解決復雜性能問題常常需要全局性的方法,整個系統(包括自身內部和外部的交互)都可能需要被調查研究,這需要非常廣泛的技能。很多時候性能問題表現也并不是問題本身,在復雜的軟件中通常會有多個問題,即使最優秀的編程人員也難免會犯錯,就是那些被認為擁有高性能的軟件,也會有不少已知的但仍未被修復的性能問題,我們要辨別哪些問題影響到了性能,哪些無關。對于那些和性能關系不大的問題,可以放置不理。還有應該把關注點放到與云計算性能緊密相關的環節上,比如數據中心網絡很多端口光模塊沒有識別,雖然影響到了使用,但對轉發性能沒有影響,這個就可以忽略,數據中心只要關心與業務性能有關的環節,將這些環節做好,結果必然是獲得優異的性能。