在網格環境中,企業採購伺服器主機的時候,是否只需要購置一堆小型的主機,就能避免採購大型主機,從而減少企業硬體成本的支出呢?究竟網格資料庫在規畫的時候應該注意那一些細節,才會真的為企業減少成本的支出?

伺服器一加一不等於二
在一般的情況下,「組合小主機來提供大服務」的推論是可以成立的,但並不能合乎所有的情況。在網格的環境下,服務是可能被分散到多臺不同的實體主機上,因此不論是應用程式伺服器還是資料庫伺服器,主機與主機間不可避免的是同步資訊的傳遞,這樣須花費額外的系統資源。

特別針對網格資料庫系統而言,這樣的情況更為嚴重,因為,在資料庫的網格環境中,主機與主機間除了要傳遞系統面的同步資訊外,還必須同步資料庫內所儲存的異動資料(每個Instance 都有自己獨立的資料快取,當資料快取中的資料被異動時,則需跟其他的Instance同步)。

隨著資料庫主機的增加這樣的情況更為嚴重,我們可以用圖一的公式,大概估算出可能佔用的系統資源。

例如,經過觀察我們發現企業的ERP系統的網格資料庫在兩臺資料庫主機時,兩臺主機間同步資訊的傳遞大約會佔0.2顆處理器的系統資源(α=0.2),如此當網格資料庫系統的資料庫主機擴長到6臺資料庫主機的時候(N=6),我們可以預期整個資料庫系統浪費在同步資訊傳遞資源量如圖二。

所以,當該ERP系統的網格資料庫擴充到6臺網格資料庫主機的時候,該網格資料庫系在同步資訊的傳遞上浪費了3顆處理器的系統資源。此時,企業在ERP系統的資料庫建置硬體購就應該思考:這3顆處理器所需花費的軟/硬採購成本是否划算?或者,我們應該再採用更大型的主機,以避免整體資料庫系統浪費太多的系統資源在同步資訊的傳遞上。不過這樣的估算尚不含實體記憶體的估算,依筆者的經驗,一般的情況下,實體記憶體的浪費程度會比處理器浪費更多。

因此一般而言,我們並不會建議單一的網格資料庫系統超過太多的主機,當然,有時候,我們會將資料庫主機一直擴充下去,不過,當這過多的主機成為一種常態的時候,我們便會建議管理者將資料庫系統,轉移到較大型的主機上面,一方面減少同步資訊傳遞成本的浪費,另一方面,從管理的角度而言,可以少管幾臺機器,縮減人力成本。

OLAP與OLTP並存的最大效益化
在考量避免同步資訊傳遞成本的浪費及高可靠度等兩項因素的平衡點前提下,我們會建議一個企業的網格資料庫系統,至少有兩臺資料庫主機(特別是面對企業 7×24 No Down Time的需求),而在面對突然暴增、非常態的系統負載時,我們才有辦法即時地拉入第三或第四臺主機,滿足當
下的需求,以乎合網格的真義。

接下來相信有讀者會問:這兩臺資料主機的應該如何規畫?才能達到效益最大化?對於單純OLTP(或是單純OLAP環境)的網格資料庫系統而言,還比較單純,基本上,就是針對OLTP(或是OLAP)規畫雷同的主機來進行建置即可。但如果是OLTP及OLAP環境並存的環境呢?我們也是準備兩臺相同的環境來進行置嗎?如果就「可行性」而言,那當然是沒有問題的,反正老子有錢,用力地給它砸下去,就對了。只不過,從效能最大化的角度而言,這樣的做法是有問題的。

相信曾經面對過OLTP及OLAP在同一個資料庫主機環境下的管理者而言,他們都知道,由於OLTP及OLAP運作的屬性不同,所以在系統資料庫配置(configuration)上,也極為不同︰整體而言,OLAP所佔用的系統資源會被資料庫的系統資源大很多)。因此一方面為了避免管理上的困擾、減少系統資源的浪費,也為了避免系統資源的重複使用、降低同步資訊的傳遞,所以我們直接將網格資料庫系統中的兩臺主機個別規畫,讓其中一臺主機以OLAP的需求來做規畫,而另一臺則以OLTP來做規畫。如此兩臺主機在一般的情況下就可以各司其職,互不干擾;而當災難發生的時候,兩臺主機又可以互為備援。

由於兩臺網格資料庫主機不需要配置成同時滿足 OLTP 及 OLAP 環境的資料庫主機,所以利用這樣的做法,我們即可再節省大量的硬體成本,以SPARC的處理器為例:
面對企業OLAP(BI、DSS……)需求的增加,一般而言,對於資料庫的主機,我們會建議採用UltraSPARC IV的處理器,以因應大量的資料運算與分析,但是對於單純做OLTP的資料庫而言,資料庫主要的運作都是集中在少數資料的新增、修改的資料交易上,這些資料交易並不會佔用太多的系統資源,相對地每次的資料交易也不會佔用太多的處理器資源,因此UltraSPARC IV 處理器的使用即是一種浪費。

再者OLTP的資料庫還有一個特性就是「使用頻率高」(一般在企業正常運作情況下,OLTP的使用率會比OLAP上數百、千、甚至萬倍,但單次行為所造成的系統負載量而言,則是OLAP的負載量比OLTP高上數百、千甚至萬倍)所以對於OLTP的資料庫,我們就可以選擇效能不需要太好,但是執行緒(Thread)要越多越好的處理器,例如:UltraSPARC T1–每顆處理器擁有8個運算核(core),而每個運算核擁有4個執行緒(Thread),所以一顆處理器一共擁有8×4 =32個執行緒(UltraSPARC IV的處理器只有兩個執行緒)。

如此32個執行緒就比UltraSPARC IV的處理器足足多了16倍的命中率(hit rate),但在整體系統的建置上,採用UltraSPARC T1的處理器會減少企業軟硬體成本的支出。

網格運算仍須精打細算
從大方向而言,利用網格的技術的確會為企業減少硬體成本的支出並達到高可靠度(High Availability)的效果,但企業在規畫資料庫網格時,仍應注意網格資料庫本身會造成資源浪費的地方,避免畫虎不成反類犬,反而增加硬體成本的支出,另一方面,在更嚴謹的規畫下,即可協助企業再更精打細算軟/硬體成本的支出。

作者/杜奕鋒
艾群科技技術顧問,崑山大學講師。國立中央大學畢業,專精於商業流程設計、資料庫管理、T-SQL 及軟體整合。通過 OCP(8i/9i/10g)、RHCE、SCSA、SCNA、SCJP 等認證。

曾任職於 104 人力銀行,負責 eHRPortal 及 WorkFlow 系統整合;中華民國紡拓會,負責紡織業 ERP 系統導入;亦曾擔任臺灣護理學會系統導入顧問;並曾授課於關渡基督書院、永達技術學院。
圖一:估算系統資源使用量的公式。
圖二:估算系統資源使用量的範例。
OLAP及OLTP分開規畫。

熱門新聞

Advertisement