溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

linux性能調(diào)試之vmstat分析

發(fā)布時間:2020-10-08 15:05:41 來源:腳本之家 閱讀:166 作者:llc_no1 欄目:服務(wù)器

1.性能分析的目的

1)找出系統(tǒng)性能瓶頸(包括硬件瓶頸和軟件瓶頸);
2)提供性能優(yōu)化的方案(升級硬件?改進系統(tǒng)系統(tǒng)結(jié)構(gòu)?);
3)達到合理的硬件和軟件配置;
4)使系統(tǒng)資源使用達到最大的平衡。(一般情況下系統(tǒng)良好運行的時候恰恰各項資源達到了一個平衡體,任何一項資源的過渡使用都會造成平衡體系破壞,從而造成系統(tǒng)負載極高或者響應(yīng)遲緩。比如CPU過渡使用會造成大量進程等待CPU資源,系統(tǒng)響應(yīng)變慢,等待會造成進程數(shù)增加,進程增加又會造成內(nèi)存使用增加,內(nèi)存耗盡又會造成虛擬內(nèi)存使用,使用虛擬內(nèi)存又會造成磁盤IO增加和CPU開銷增加)

2.影響性能的因素
1)CPU(cpu的速度與性能很大一部分決定了系統(tǒng)整體的性能,是否使用SMP)
2)內(nèi)存(物理內(nèi)存不夠時會使用交換內(nèi)存,使用swap會帶來磁盤I0和cpu的開銷)
3)硬盤(存儲系統(tǒng))
a.Raid技術(shù)使用(RAID0, RAID1, RAID5, RAID0+1)
b.小文件讀寫瓶頸是磁盤的尋址(tps),大文件讀寫的性能瓶頸是帶寬
c.Linux可以利用空閑內(nèi)存作文件系統(tǒng)訪問的cache,因此系統(tǒng)內(nèi)存越大存儲系統(tǒng)的性能也越好
4)網(wǎng)絡(luò)帶寬。

3.性能分析的步驟
1)對資源的使用狀況進行長期的監(jiān)控和數(shù)據(jù)采集(nagios、cacti)
2)使用常見的性能分析工具(vmstat、top、free、iostat等)
3)經(jīng)驗積累
a.應(yīng)用程序設(shè)計的缺陷和數(shù)據(jù)庫查詢的濫用最有可能導(dǎo)致性能問題
b.性能瓶頸可能是因為程序差/內(nèi)存不足/磁盤瓶頸,但最終表現(xiàn)出的結(jié)果就是CPU耗盡,系統(tǒng)負載極高,響應(yīng)遲緩,甚至?xí)簳r失去響應(yīng)
c.物理內(nèi)存不夠時會使用交換內(nèi)存,使用swap會帶來磁盤I0和cpu的開銷
d.可能造成cpu瓶頸的問題:頻繁執(zhí)Perl,php,java程序生成動態(tài)web;數(shù)據(jù)庫查詢大量的where子句、order by/group by排序……
e.可能造成內(nèi)存瓶頸問題:高并發(fā)用戶訪問、系統(tǒng)進程多,java內(nèi)存泄露……
f.可能造成磁盤IO瓶頸問題:生成cache文件,數(shù)據(jù)庫頻繁更新,或者查詢大表……

4.vmstat詳細介紹

vmstat:用于監(jiān)控、顯示系統(tǒng)運行過程中的虛擬內(nèi)存/CPU/磁盤狀態(tài)。

簡單示例(時間間隔2s,監(jiān)控2次):

linux性能調(diào)試之vmstat分析

重要字段解釋:

r 表示運行隊列(等待運行的進程數(shù))

b 表示阻塞的進程

swpd 虛擬內(nèi)存已使用的大小

free   空閑的物理內(nèi)存的大小,我的機器內(nèi)存總共8G,剩余3415M。

in 每秒CPU的中斷次數(shù),包括時間中斷

cs 每秒上下文切換次數(shù),比如系統(tǒng)調(diào)用,線程的切換。上下文切換次數(shù)過多表示你的CPU大部分浪費在上下文切換,導(dǎo)致CPU干正經(jīng)事的時間少了,CPU沒有充分利用,是不可取的。

us 用戶CPU時間。

sy 系統(tǒng)CPU時間,如果太高,表示系統(tǒng)調(diào)用時間長,例如是IO操作頻繁。

id  空閑 CPU時間,一般來說,id + us + sy = 100。

wt 等待IO CPU時間。

典型的問題現(xiàn)象

1.CPU問題
a.procs.r持續(xù)有值,且大于系統(tǒng)CPU數(shù)量,則認(rèn)為系統(tǒng)不足以支撐當(dāng)前的負載(因為一直有進程在等待運行),可能是軟件實現(xiàn)問題或者需要升級硬件系統(tǒng)
b.cpu.id持續(xù)為0,表示CPU持續(xù)忙,需要根據(jù)cpu.sy,cpu.us繼續(xù)查找原因
c.cpu.sy,cpu.us持續(xù)高,且cpu.sy大于cpu.us表示系統(tǒng)頻繁在內(nèi)核態(tài)執(zhí)行,可能存在頻繁的或較多的系統(tǒng)調(diào)用或者IO訪問
2.內(nèi)存問題
a.memory.swpd數(shù)值持續(xù)有值,說明系統(tǒng)內(nèi)存不足且使用了虛擬內(nèi)存,需要加大內(nèi)存。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI