2011年11月13日 星期日

解決SiteScope無法判斷監偵超過16顆CPU的問題

SiteScope是早期一套相當知名用來監控分散式系統架構及硬體效能的一套監控軟體。該軟體是由Mercury Interactive公司所研發,而Mercury Interactive最後也在2006-07年間被HP (Hewlett-Packard)收購。

有關於更多SiteScope的訊息,可參閱:Mercury InteractiveHP SiteScopeHP SiteScope softwareSiteScope Release NotesSiteScope® User Guide

在Mercury Interactive被收購前的最後一個版本7.8.0.1中,內存的設定值最高預設值也都停留在當時最高的硬體等級設定。

但隨著科技的進步,CPU中央處理器從原本的單顆單核提升到單顆多核多執行緒,相信Mercury Interactive SiteScope最終版應該也沒辦法支援到這麼多顆的處理器。

本來沒有太注意,由於偵測不到超過16顆CPU,並不會判定為Error,所以當時所設定的Error警示通知也不會發訊息,在某天同事無意間告知我,SiteScope監控不到24顆CPU的問題,這時候才去注意,不單單是CPU的監控而已,其他部份設定也都是有它的上限值。

然而同事也相當熱心的去尋找解決辦法,也在他的告知之下進行了相關設定檔做設定,由於他的熱心,也免於自己還要去找答案所花費處理的時間。

接下來我們就來看一下相關的設定及所需修改的參數吧!


首先進入到SiteScope的主機CPU Load監控,發現到原本的欄位上,出現了【java.lang.ArrayIndexOutOfBoundsException:16】的訊息。查了一下訊息說明,是指出異常超過16的數值。


重新【Refresh】,一樣出現【java.lang.ArrayIndexOutOfBoundsException:16】的訊息。


於是點選【Edit】來看CPU的設定,此時就發現到,在Error的項目前,CPU Max Processors最大只到16顆。


這時候只要到【X:\SiteScope\groups\】底下,修改檔案【master.config】即可。
註:【X:\】為您預設的安裝路徑,例如【C:\】,而SiteScope底下的groups目錄,則是您所建立的CPU群組,若您未建立群組,則檔案就會是在SiteScope目錄下。

我們可以利用【記事本】或 其他的文書編輯軟體或程式碼編輯軟體來開啟,如本範例中所使用的【Notepad++】。


在使用Notepad++開啟【master.config】後,我們可利用尋找的功能輸入關鍵字【_cpuMaxProcessors】,此時就會找到【_cpuMaxProcessors=16】的值,我們可以很清楚的看到,設定值是【16】,也就是說CPU的最大值只能判斷到16顆

註:在此所指的16顆處理器,也包含多核心多執行緒加總。


我們在此將【_cpuMaxProcessors=16】的值修改為【_cpuMaxProcessors=64】。修改後存檔並關閉編輯軟體。


修改後也必須重新啟動SiteScope,新的設定值才會正確的套用。我們到【服務】中,點選【SiteScope】按右鍵選【重新啟動(Restart)】。


服務重新啟動中


當【服務】重新啟動完畢後,我們重新在進入到SiteScope的主機CPU Load監控畫面,在出現【java.lang.ArrayIndexOutOfBoundsException:16】設定的欄位後,點選【Refresh】。


在【Refresh】後,我們可以看到,SiteScope已經能夠正確的判斷超過16顆處理器主機。


CPU Load畫面中,該主機已經抓到24顆處理器的訊息。


於是再來點選【Edit】來看CPU的設定,此時就會發現到,在Error的項目前,CPU Max Processors最大值已經擴充到64顆了。


沒有留言:

張貼留言