Linux:性能瓶頸。

從計算機本身的角度來考慮的話,一個請求的訪問到處理最終到返回,性能瓶頸只會是:CPU、文件IO、網絡IO、內存等因素。而一臺計算機中這些維度是有性能瓶頸的,如果某個資源消耗過多,通常會造成系統的響應速度較慢,所以增加一臺機器,使得數據庫的IO和CPU資源獨佔一臺機器從而增加性能。

簡單說一下各個資源的消耗原因。

CPU/IO/內存:

  • 主要是上下文的切換,因爲每個CPU核心在同一時刻只能執行一個線程,而CPU的調度有幾種方式,比如搶佔式和輪詢等,以搶佔式爲例,每個線程會分配一定的執行時間,當達到執行時間、線程中有IO阻塞或者有高優先級的線程要執行時。CPU會切換執行其他線程。而在切換的過程中,需要存儲當前線程的執行狀態並恢復要執行的線程狀態,這個過程就是上下文切換。比如IO、鎖等待等場景下也會觸發上下文切換,當上下文切換過多時會造成內核佔用比較都的CPU。
  • 文件IO,比如頻繁的日誌寫入,磁盤本身的處理速度較慢、都會造成IO性能問題
  • 網絡IO,帶寬不夠
  • 內存,包括內存溢出、內存泄漏、內存不足

實際上不管是應用層的調優也好,還是硬件的升級也好。其實無非就是這幾個因素的調整。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章