您好,登錄后才能下訂單哦!
1.性能分析的目的
1)找出系統性能瓶頸(包括硬件瓶頸和軟件瓶頸);
2)提供性能優化的方案(升級硬件?改進系統系統結構?);
3)達到合理的硬件和軟件配置;
4)使系統資源使用達到最大的平衡。(一般情況下系統良好運行的時候恰恰各項資源達到了一個平衡體,任何一項資源的過渡使用都會造成平衡體系破壞,從而造成系統負載極高或者響應遲緩。比如CPU過渡使用會造成大量進程等待CPU資源,系統響應變慢,等待會造成進程數增加,進程增加又會造成內存使用增加,內存耗盡又會造成虛擬內存使用,使用虛擬內存又會造成磁盤IO增加和CPU開銷增加)
2.影響性能的因素
1)CPU(cpu的速度與性能很大一部分決定了系統整體的性能,是否使用SMP)
2)內存(物理內存不夠時會使用交換內存,使用swap會帶來磁盤I0和cpu的開銷)
3)硬盤(存儲系統)
a.Raid技術使用(RAID0, RAID1, RAID5, RAID0+1)
b.小文件讀寫瓶頸是磁盤的尋址(tps),大文件讀寫的性能瓶頸是帶寬
c.Linux可以利用空閑內存作文件系統訪問的cache,因此系統內存越大存儲系統的性能也越好
4)網絡帶寬。
3.性能分析的步驟
1)對資源的使用狀況進行長期的監控和數據采集(nagios、cacti)
2)使用常見的性能分析工具(vmstat、top、free、iostat等)
3)經驗積累
a.應用程序設計的缺陷和數據庫查詢的濫用最有可能導致性能問題
b.性能瓶頸可能是因為程序差/內存不足/磁盤瓶頸,但最終表現出的結果就是CPU耗盡,系統負載極高,響應遲緩,甚至暫時失去響應
c.物理內存不夠時會使用交換內存,使用swap會帶來磁盤I0和cpu的開銷
d.可能造成cpu瓶頸的問題:頻繁執Perl,php,java程序生成動態web;數據庫查詢大量的where子句、order by/group by排序……
e.可能造成內存瓶頸問題:高并發用戶訪問、系統進程多,java內存泄露……
f.可能造成磁盤IO瓶頸問題:生成cache文件,數據庫頻繁更新,或者查詢大表……
4.vmstat詳細介紹
vmstat:用于監控、顯示系統運行過程中的虛擬內存/CPU/磁盤狀態。
簡單示例(時間間隔2s,監控2次):
重要字段解釋:
r 表示運行隊列(等待運行的進程數)
b 表示阻塞的進程
swpd 虛擬內存已使用的大小
free 空閑的物理內存的大小,我的機器內存總共8G,剩余3415M。
in 每秒CPU的中斷次數,包括時間中斷
cs 每秒上下文切換次數,比如系統調用,線程的切換。上下文切換次數過多表示你的CPU大部分浪費在上下文切換,導致CPU干正經事的時間少了,CPU沒有充分利用,是不可取的。
us 用戶CPU時間。
sy 系統CPU時間,如果太高,表示系統調用時間長,例如是IO操作頻繁。
id 空閑 CPU時間,一般來說,id + us + sy = 100。
wt 等待IO CPU時間。
典型的問題現象:
1.CPU問題
a.procs.r持續有值,且大于系統CPU數量,則認為系統不足以支撐當前的負載(因為一直有進程在等待運行),可能是軟件實現問題或者需要升級硬件系統
b.cpu.id持續為0,表示CPU持續忙,需要根據cpu.sy,cpu.us繼續查找原因
c.cpu.sy,cpu.us持續高,且cpu.sy大于cpu.us表示系統頻繁在內核態執行,可能存在頻繁的或較多的系統調用或者IO訪問
2.內存問題
a.memory.swpd數值持續有值,說明系統內存不足且使用了虛擬內存,需要加大內存。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。