影響主机效能的關鍵因素
2 月 19
FreeBSD筆記本, 網路技術 FreeBSD, Google, IDC, MySQL, 主機管理 No Comments / 6,155 views
架設網路主機時,如果調配的方式錯誤,很容易造成效率不佳、穩定性下降,甚至減短壽命。那麼,有那些因素值得注意呢?
- CPU
目前越來越多 CPU 已經採多核設計,也就是一顆可抵好幾顆。所以對於運算需求較高的主機而言,選擇多核的 CPU 是無庸置疑的。但若是模擬出來的假多核,如 intel 的 hyper thread 技術,就不見得有多大的實質助益。 - RAM
記憶體方面也有這樣的趨勢,由原本的單一通道,提昇到雙通道,甚至三通道。這就像高速公路的車道,數量越多,車流的容許量越大。對於資料量大的主機,就必須特別注意這點,像是資料庫很大,或影音系統。 - 硬碟
現在硬碟的容量越來越大,已經有單顆 3T 的產品問市了。然而,讀取的速度雖然也跟著加快,但最關鍵的寫入速度還是不盡理想,而成為最大的瓶頸。為了提昇硬碟的效率,多數人是採用 RAID、SAN 或 NAS 來處理。後二者要花的錢很多,在這裡暫不討論。但就 RAID 而言,並不是架了 RAID 就會變快,例如是架 RAID 0(合併)和 RAID 1(鏡射) 來說,寫入的動作並沒有被分擔掉,所以有架沒架都一樣慢。
那麼,可以怎麼作呢?
筆者的作法是用二顆硬碟,以主從的概念來使用。例如要進行系統壓縮備份時,由 A 備份到 B,那麼一讀一寫,速度會快很多。這樣作還有一個好處,就是硬碟磁區的混亂程度會最低。因為在單顆硬碟上作備份時,會把前方讀寫速度較快的空間佔掉,而造 成後續資料被寫入速度較慢的後段磁區。即使你把這些前方的大檔刪掉,後方的檔案也不會被移到前方。這表示硬碟讀取頭就必須有大幅度的擺盪才能讀到資料,這 都會影響到效率。 - 網路卡
現在雖然已經進步到 Gigabit 的網卡,但是如果硬碟讀取速度不夠,還是會受限。
另外,當系統在進行大量資料傳輸時,網卡的頻寬還是可能被佔滿,而造成不同伺服器的延遲問題。
針對這部份的作法是採用雙網卡,甚至多網卡的作法,再依實際需求來規劃網卡的用法。
例如雙網卡的狀態,可以一張網卡對外,另一張對內供內網使用,這樣就可以避免內外網搶頻寬的現象發生。 - 主從式主機架構
也就是大家常聽到的 n-Tier 架構,它的概念也大同小異,就是簡單四個字:分工合作。
目前來講,當網站越長越大之後,可以先考慮架設 CDN(Content Delivery Network)主機來負責網站檔案的傳輸,這些檔案通常變動性較低,但讀取頻率極高。
等需求再大一些,就可以考慮架設專屬的資料庫伺服器,因為資料庫是整個系統的核心不能損?,獨立出來將有助於系統的穩定性,資源調配上也較明確。
之後,就可以考慮架設 AP 伺服器,讓多台主機來處理使用者的需求,再結合 Load balance 的設定,把需求分配給不同的 AP 伺服器處理。概念上可以看成大賣場的結帳櫃台,人多時就全開,人少時就只保留部份櫃台即可。 - 雲端系統
國外的 Amazon 和 Google 等業者都有提供系統龐大、收費低廉的雲端系統可供租用,當需求大到無法自行解決時,雲端系統也是值得考慮的選項之一。但在使用上,還是要評估系統的距離,遠在天邊的網路系統往往不比隔壁的主機來得快。
總結來說,效能的瓶項往往來自通道數量和傳輸方式。盡可能增加通道量,控制行進方式,就能提高系統運作效能。