在過往與很多人的交流過程中發現,在談到基於硬體來進行資料庫效能瓶頸分析的時候,常被大家誤解為簡單的使用更為強勁的主機或者儲存來替換現有的裝置。
個人覺得這其中可能存在乙個非常大的誤區。我們在談論基於硬體進行優化的時候,不能僅僅將資料庫使用的硬體劃分為主機和儲存兩部分,而是需要進一步對硬體進行更細的分解,至少也應該分解到如下範疇:
raid卡:
其他:如匯流排頻寬等,決定了cpu與記憶體間資料傳輸效率,這一點很多時候關注較少,但也可能會出現瓶頸
儲存網路
硬體角度所能提供的處理能力,一定是上面所列的多個方面(這裡僅僅只是主要部分,可能還有其他)共同決定的整體能力,任何乙個方面出現瓶頸,都能導致整體效能上不去,也就是我們常說的木桶原理。
在以往的經驗中,最容易出現效能瓶頸的地方主要會出現在以下幾個方面:
cpu資源方面瓶頸
當 cpu 方面資源遇到瓶頸的時候,主要表現在伺服器cpu利用率中 usr 所佔比例很高,iowait卻很小。這類問題大多出現在資料量並不是太大,同時又有足夠記憶體來對資料進行快取的應用場景。同時也是目前大多數中小**所面臨的資料庫效能瓶頸。
當遇到 cpu 方面的資源瓶頸的時候,可能由兩個方面造成:
網路資源方面的瓶頸
一般來說應用與資料庫之間的網路互動所需的資源並不是非常大,所以這個環境遇到瓶頸的可能並不是非常大。但是在分布式的集群環境中,各個資料庫節點之間的網路環境經常會稱為系統的瓶頸。
比較常見的場景如 mysql cluster 或者是 oracle rac 環境中,節點之間的資料交換網路環境的優劣可能直接影響到系統的整體處理能力,因為在節點間會存在大量的資料交換,都是依賴網路傳輸來完成。
在這樣的場景中,廉價一點的解決方案是通過 萬兆交換機 來替換現在常用的 千兆交換機 來提公升網路處理能力降低網路延時。不過這個方案主要提公升的是吞吐量方面,對於延時方面的提公升可能並不一定能滿足某些要求非常高的場景。這時候就該考慮使用更為昂貴但也更高效的方案:用 infiniband 替換普通交換機來極大的降低網路方面所帶來的資料交換延時。
MySQL資料庫效能優化之硬體優化
在過往與很多人的交流過程中發現,在談到基於硬體來進行資料庫效能瓶頸分析的時候,常被大家誤解為簡單的使用更為強勁的主機或者儲存來替換現有的裝置。個人覺得這其中可能存在乙個非常大的誤區。我們在談論基於硬體進行優化的時候,不能僅僅將資料庫使用的硬體劃分為主機和儲存兩部分,而是需要進一步對硬體進行更細的分解...
MySQL資料庫效能優化之硬體瓶頸分析
在過往與很多人的交流過程中發現,在談到基於硬體來進行資料庫效能瓶頸分析的時候,常被大家誤解為簡單的使用更為強勁的主機或者儲存來替換現有的裝置。個人覺得這其中可能存在乙個非常大的誤區。我們在談論基於硬體進行優化的時候,不能僅僅將資料庫使用的硬體劃分為主機和儲存兩部分,而是需要進一步對硬體進行更細的分解...
效能優化 MySQL資料庫優化
可以從哪幾個方面進行資料庫的優化?如下圖所示 a sql及索引優化 根據需求寫出良好的sql,並建立有效的索引,實現某一種需求可以多種寫法,這時候我們就要選擇一種效率最高的寫法。這個時候就要了解sql優化 b 資料庫表結構優化 根據資料庫的正規化,設計表結構,表結構設計的好直接關係到寫sql語句。c...