iT邦幫忙

DAY 7
1

Open Source與Windows Azure共舞系列 第 7

Microsoft Azure虛擬機器的效能監測工具

在使用雲端服務時,我們都會關心雲端服務提供的效能如何。

尤其在運用雲端服務建置各種企業入口網站及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耗用百分比。

我們換到雲端服務的監視頁面:

多了一個指標:網路輸出,也把各指標的實際數據呈現出來。

網路輸出有個尖峰期,是丁大丙在下指令開始執行大數據資料表時的網路傳輸量,之後,因為沒有資料傳送就下滑又平穩下來。

接下來,我們來看虛擬硬碟的效能指標,進入虛擬硬碟的儀表板頁面:

監視的指標變多了,因為虛擬機器是比較具體的物件,但這些指標各代表什麼意思呢?我們轉到虛擬機器的監視頁面,如下圖:

在監視頁面,可以看到各個指標的代表顏色及數據。

分別是:

  • 硬碟讀取的位元組數/秒,紫色。
  • 硬碟寫入的位元組數/秒,藍色。
  • 網路輸出,綠色。
  • CPU百分比,黃色。
  • 網路輸入,淺紫色。

我就不再詳細解釋每個數據,因為本文主要目的是展示Microsoft Azure有那些效能監控工具協助系統管理者。

接下來我們看看儲存體的儀表板頁面:

也有好幾個指標,切換到儲存體監視頁面就能瞭解各指標的意義。

在切換到監視頁面,我先解釋上圖下方的Blob、資料表(Table)和佇列(Queue),瞭解資料庫的邦友應該知道這三個術語。

  • Blob:大型物件,儲存檔案型資料的地方,像是文件、媒體(圖檔、影像檔、影片檔)和應用程式的安裝檔案等等。
  • 資料表(Table):儲存結構化資料集合,這是以NoSQL為基礎的儲存體,有助於大量的資料存取。NoSQL?這不是Big Data的熱門?對,Microsoft Azure早已準備好支援Big Data。
  • 佇列(Queue):主要用於在雲端服務的不同元件間的非同步通訊。

為什麼儲存體變成是好像資料庫結庫?這個以後再說。

總之,我們還是把儲存體看成是硬碟的一種架構,只是不像是傳統硬碟那樣分C槽、D槽(丁小雨的最愛)......

另外,還有種儲存體沒出現在上圖中,File型儲存體,這是基於SMB 2.1協定的檔案分享機制,也就是C槽、D槽...在這裏建制,然後可以分享給虛擬機器或雲端服務使用。目前,我們還用不到File型儲存體,後續文章中會說明。

瞭解Microsoft Azure的儲存體類別,我們來看看儲存體的監視頁面:

為了減少畫面上的零亂,我就不開Queue的圖形顯示,只開了Blob和Table。

基本上是三個指標:

  • 可用性
  • 成功百分比
  • 要求總計(Total Request)

可用性和成功百分比,都應該在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。


上一篇
在Microsoft Azure中以CentOS 7架設LAMP Server
下一篇
在Microsoft Azure執行Ubuntu平台
系列文
Open Source與Windows Azure共舞30

尚未有邦友留言

立即登入留言