在使用雲端服務時,我們都會關心雲端服務提供的效能如何。
尤其在運用雲端服務建置各種企業入口網站及B2B、B2C等等應用的網站時,對外連線的流量、反應時間及虛擬機器的資源耗用,都會影響客戶端對網站使用經驗的感覺好壞。
一個反應快、運作流暢的網站,客戶端會比較願意花點時間停留看看有什麼功能,至於能停留多久,就是網站內容的可看性來決定。
也就是說,基本上,我們想運用雲端服務建置網站時,雲端服務能不能提供足夠的流量讓較多的客戶端連線(來客數多)、客戶端在操作網頁時能夠快速反應吸引客戶停留,會是系統管理者比較關注的事情。
因此,雲端服務提供者的系統管理介面能否提供相關數據線上查詢,對雲端虛擬機器的系統管理者,會有很大的幫助。
Microsoft Azure入口網站就提供多樣化又容易使用的效能監測工具,讓系統管理者能夠輕輕鬆鬆完成虛擬機器的效能監測工作。
基本上,對虛擬機器Microsoft Azure提供三方面的效能監測:
我們連到Microsoft Azure入口網站,如下圖:
可以看到所有項目。
我們關心的是SIMONLAMP這個雲端服務及其虛擬機器,以及儲存體。
分別點選上圖左邊以黃色框標示的虛擬機器、雲端服務及儲存體,就可以監視這三者的運作效能。
在進行效能監測時,我們要模擬網站運作。
正好邦友丁大丙正在MySQL測試產生一億筆資料錄的Big Data
就請他連到我建置的LAMP Server虛擬機器上測試,測試結果產生兩個有一億筆記錄的資料表,如下圖:
總共兩億筆資訊記錄,各佔2.6GB的硬碟空間。
然後丁大丙又想測JOIN,兩個資料表直接UNION JOIN,這個產生的暫存資料表會有高達一億乘一億筆的資料記錄,這是天文數字。
可想而知,我建置的LAMP Server才只用一個1.6Gh單核心的CPU、1.75GB記憶體,能執行成什麼樣子。
有了測試過程,我們來看看Microsoft Azure提供的效能監測工具表現如何。
先到雲端服務的儀表板頁面:
雲端服務的儀表板上監視兩個數據:CPU耗用百分比及回應時間。
回應時間指的是虛擬機器接收到客戶端的請求時,平均的回應時間,由曲線圖看起來,回應時間都很平穩的在80到90微秒間,相當快速,只是當時只有我和丁大丙連線,只能說表現還不錯,至於實際應用情境下的回應時間表現,需要更多的連線來測試。
在後續文章中,我會利用效能測試工具來進行。
在CPU耗用百分比可以看到有一段尖峰時段,這正好是丁大丙在測試自動產生一億筆資料記錄的時間。產生第一個資料表時,耗用百分比上升到30%左右開始平穩。
再產生第二個資料表時,耗用百分比就徒然上升到92%,最後進行JOIN的動作時,耗用百分比就一直居高不下。
但,虛擬機器仍然在運作,以SSH終端機連線上去,用Linux的htop效能監視工具查看,反應速度也都還好,htop效能監視工具如下圖:
本文末會附上在CentOS 7中安裝htop效能監視工具的過程。
在htop中可以看到CPU滿載,幾乎都是被mysql佔用了。而記憶體也被吃掉一大塊,也可看到mysql就吃了953MB。
由這個情況看來,CentOS 7的系統架構是相當穩的,並不會因為有大型工作而造成不平衡的運作狀況,也不會有當機的情形。
因為丁大丙擔心鐵人賽結束時,這個JOIN的動作還在執行,就先把JOIN作業砍掉。
所以,可以由儀表板頁面看到CPU耗用百分比在JOIN作業砍掉後,逐漸下滑。
可能各位會問為何不是直掉下來,因為工作被砍掉了,不是嗎?
這是因為Linux的運作方式,雖然工作被砍掉了,還是要把這個工作運作過程中產生的暫存資料清除,所以,才會慢慢的降低CPU耗用百分比。
我們換到雲端服務的監視頁面:
多了一個指標:網路輸出,也把各指標的實際數據呈現出來。
網路輸出有個尖峰期,是丁大丙在下指令開始執行大數據資料表時的網路傳輸量,之後,因為沒有資料傳送就下滑又平穩下來。
接下來,我們來看虛擬硬碟的效能指標,進入虛擬硬碟的儀表板頁面:
監視的指標變多了,因為虛擬機器是比較具體的物件,但這些指標各代表什麼意思呢?我們轉到虛擬機器的監視頁面,如下圖:
在監視頁面,可以看到各個指標的代表顏色及數據。
分別是:
我就不再詳細解釋每個數據,因為本文主要目的是展示Microsoft Azure有那些效能監控工具協助系統管理者。
接下來我們看看儲存體的儀表板頁面:
也有好幾個指標,切換到儲存體監視頁面就能瞭解各指標的意義。
在切換到監視頁面,我先解釋上圖下方的Blob、資料表(Table)和佇列(Queue),瞭解資料庫的邦友應該知道這三個術語。
為什麼儲存體變成是好像資料庫結庫?這個以後再說。
總之,我們還是把儲存體看成是硬碟的一種架構,只是不像是傳統硬碟那樣分C槽、D槽(丁小雨的最愛)......
另外,還有種儲存體沒出現在上圖中,File型儲存體,這是基於SMB 2.1協定的檔案分享機制,也就是C槽、D槽...在這裏建制,然後可以分享給虛擬機器或雲端服務使用。目前,我們還用不到File型儲存體,後續文章中會說明。
瞭解Microsoft Azure的儲存體類別,我們來看看儲存體的監視頁面:
為了減少畫面上的零亂,我就不開Queue的圖形顯示,只開了Blob和Table。
基本上是三個指標:
可用性和成功百分比,都應該在100%。這代表高可用度與可靠度,也就是資料完全沒有漏失的情況。
但Table為什麼有一段時間沒有成功百分比呢?因為沒有資料存取,就沒有成功百分比。那Blob為什麼成功百分比都一直是100%呢?因為我們一直都會存取Blob儲存體,不然虛擬機怎麼運作!
換句話說,以目前的應用來看,還是以Blob儲存體的操作為主。
要求總計是指向儲存體請求存取的次數,對Blob的要求次數遠高於資料表。
由以上的討論,我們可以看到Microsoft Azure已經提供完備的系統監視工具,協助系統管理者進行雲端服務的效能監控工作。
在文章最後,我說明安裝CentOS 7效能監視工具htop程式的過程。
請先登入超級使用者環境,執行下列指令:
yum -y install wget
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -ihv rpmforge-release*.rf.x86_64.rpm
yum install htop
這樣就完成htop程式的安裝,只要輸入htop指令就能叫出htop系統監視畫面。
最後,我們這幾天也用了不少Microsoft Azure服務,當初申凊6300元體驗卷,到現在我還有...
雖然經過丁大丙的Big Data測試,但似乎沒用到多少經費,似乎Microsoft Azure還很省錢的。
今天就介紹到這裏,明天讓我們看看另一套Linux作業系統Ubuntu。