超高速發展的公司是孤獨的。要學習的東西是很多,但是能用來學習的時間卻幾乎沒有。不過放心,如果采納我們的建議,你將會有許多朋友,它們就是需要耗電、發熱、能夠排風、執行賺錢任務的計算機。在超高速發展的世界中,我們相信,擁有許多便宜的“金魚”比擁有幾匹昂貴的“純種馬”更好。
大學微積分課本中,最讓我欣賞的一句話是“無庸置疑,即使是不經意的觀察者也能發現<在此插人一句完全不知所云的話>”。這句話讓我印象深刻,主要因為當時所討論的內容對我來說既不直觀也不顯而易見。也許,采用更多較小的服務器與采用較少的大型服務器相比,好處并不是顯而易見的。事實上,采用更多的計算機,意味著耗電更多,占地更多,冷卻系統更多。之所以我說采用更多較小服務器比采用較少大型服務器好,原因有二。
你的設備供應商,在提成機制刺激下,一定會向你兜售利潤最高的產品。絕對如此,他們雖然跟你談賺錢,但只有把利潤率最高的設備賣給你,他們才會賺最多的錢。而這種設備就是處理器數量最多的服務器。為什么會這樣?許多公司依賴于更快更大的硬件來完成必要的工作,卻不愿意對基礎設施擴展進行投資。同樣地,設備制造商則用更高的價格來控制這些公司,從而實現高利潤。但這個方法的向題在于,更快更大的機器并不真的比具有等量處理器的多個小系統處理的工作量多。對于這些大型服務器來說,CPU效率低這個問題依然沒有解決。隨著CPU的增加,每個CPU所能做的工作都比它在一個CPU系統(無論核的數量是多少)中所能做的少一些。造成這種問問題的原因有很多,包括調度多個處理器的調度算法效率低、與內存總線的訪問速度沖突、結構沖突、數據沖突,等等。
仔細想想我們剛才所講的。你在CPU上花的錢多了,但是每個CPU所能做的卻少了。這樣就吃了兩次虧。
面對前面這些情況,供應商可能會通過第一輪比較常見的質疑。聰明的人會迅速地進一步說明:你的整體成本會下降,因為少量大設備比大量小設備消耗的總電能更少。事實上,他們可能會說,你可以與他們的合作伙伴共享(或者虛擬化)使用系統,這樣就能得到小系統、耗電少的好處了。這就給我們帶來了第二個問題,必須好好計算一下了。事實上,大型系統的耗電量可能更少,從而節約成本。由于電力成本增加,系統成本降低,所以系統必然存在一個“合適的大小”,能夠達到電力、系統成本以及計算能力的最優組合。但是,供應商可不是提供這些信息的最佳人選。你應該自己好好計算一下。計算的結果通常不會讓你購買最大的系統。要弄清楚如何對待供應商的論證,可以把它們分解開來看看。
這道算術題很簡單。讓我們用一個獨立第三方提供的系統利用率的標準評測程序來看看電力成本和單位電力消耗。我們發現,適合我們的系統仍然是經濟型系統(而并不是供應商所認定的為高端系統),且能夠在電力消耗與空間需求最小的情況下,計算能力實現最大化。幾乎所有案例中,當考慮到總體成本時,購置成本通常都會降低。
就虛擬化而言,要記住:沒有免費的軟件。利用虛擬化系統(舊的術語叫做域或者分區)的原因有很多。但把一臺服務器虛擬化成四個分區,不可能比購買四臺與每個分區大小相等的服務器得到更大的系統處理能力和生產量。記住,運行虛擬化軟件必須占用CPU周期,這就需要從某處得到這些周期。再說一次,利用虛擬化系統的原因有很多,但是一個大型分區系統的系統容量比多個與分區大小相等的小型系統的容量多是錯誤的,也并非虛擬化的理由。
與采用昂貴的系統相比,我們要采用經濟型系統的原因還有什么呢?因為我們打算進行密集的擴展,所以相對于擴展頻率來說,這樣更經濟。采購經濟型系統更容易獲批。雖然可能有多臺小服務器,但是放棄其中幾臺,空閑時才解決它們的問題,要比盡快解決昂貴系統的問題容易得多。盡管這個原因不那么直觀,但是采用經濟型系統(金魚)的環境與采用昂貴系統(純種馬)的環境相比,我們成功地用更少的人員管理了更多的系統。由于每個單元中的組件更少(如CPU),我們用于維護這種系統的費用更少,可以負擔得起更多的冗余,失敗也更少。最后,我們要解釋的是為什么稱這種系統為“金魚”。在擴展時,這些系統是非常廉價的。如果它們“死了”,那么可能就會被丟到一邊,而不是花時間把它們修好。而另一方面,“純種馬”系統意味著相當大的投入,需要花費時間對其進行網站設計維護和修復??傊?,我們傾向于有更多小朋友,而不是幾個大朋友。
本文地址:http://murenxiang.com.cn//article/3460.html