一、前言
通過對系統中和性能相關的各個環節的介紹,使大家知道出現性能問題時可以從那些方面入手去查,而分析典型應用對系統資源使用的特點,讓大家對應用和系統資源的依賴有了更直觀的認識。
大多數的硬件性能問題主要和CPU、磁盤、內存相關,還沒有遇到因為開發語言的運行效率對整個應用的性能造成影響,而應用程序設計的缺陷和數據庫查詢的濫用反倒是最最常見的性能問題。
需要注意的是,大多數情況下,雖然性能瓶頸的起因是程序性能差或者是內存不足或者是磁盤瓶頸等各種原因,但最終表現出的結果就是CPU耗盡,系統負載極高,響應遲緩,甚至暫時失去響應,因此我們觀察服務器狀況時,最先看的就是系統負載和CPU空閒度。當你閱讀完了這遍文檔以後就會有一個對系統分析的思路。
二、性能分析的目的
找出系統性能瓶頸
1)硬件瓶頸
2)軟件瓶頸
提供性能優化方案
1)升級硬件
2)改進系統結構
達到合理的硬件和軟件配置
使系統資源使用達到平衡
但遺憾的是解決一個性能瓶頸,往往又會出現另外的瓶頸或者其他問題,所以性能優化更加切實的目標是做到在一定范圍內使系統的各項資源使用趨向合理和保持一定的平衡。
系統運行良好的時候恰恰也是各項資源達到了一個平衡體,任何一項資源的過渡使用都會造成平衡體系破壞,從而造成系統負載極高或者響應遲緩。比如CPU過渡使用會造成大量進程等待 CPU資源,系統響應變慢,等待會造成進程數增加,進程增加又會造成內存使用增加,內存耗盡又會造成虛擬內存使用,使用虛擬內存又會造成磁盤IO增加和CPU開銷增加(用於進程切換、缺頁處理的CPU開銷)
三、性能相關的各個環節
3.1 硬件資源
CPU
1)是否使用SMP。
2)單顆CPU的性能對依賴CPU的某些應用的影響很嚴重,比如數據庫的查詢處理。
內存
1)物理內存
物理內存不夠時會使用交換內存。
2)交換內存
使用交換內存會帶來磁盤IO和CPU的開銷增加。
存儲系統
SCSI磁盤
ATA/SATA磁盤
RAID磁盤陣列(RAID0, RAID1, RAID5, RAID0+1)
一些經驗
1)小文件讀寫的性能瓶頸是磁盤的尋址(隨機讀寫性能更差),評估的標准是tps
2)大文件讀寫的性能瓶頸是帶寬,評估的標准是持續的讀寫速度
3)Linux可以利用空閒內存作文件系統訪問的cache,因此系統內存越大存儲系統 的性能也越好
帶寬
1)網絡帶寬
2)SCSI總線帶寬
大文件訪問時SCSI的帶寬瓶頸
3)系統總線帶寬
3.2 操作系統
SMP性能
VM性能
IO性能(存儲設備、網絡設備、異步IO)
文件系統性能(大文件優化、小文件優化、寫優化、讀優化、網絡文件系統)
多線程性能
3.3 服務器軟件
根據各個服務器的不同而定制不同的軟件,這裡就不多說了,服務器軟件實在是太多了。
3.4 開發平台/中間件軟件/框架軟件
沒有什麼規范的定義,按情況而定。
3.5 應用程序
一些應用軟件。
上一頁12下一頁查看全文 內容導航