本文通過實(shí)際業(yè)務(wù)系統(tǒng)中調(diào)整的一個(gè)案例,試圖給出一個(gè)常見CPU消耗問題的一個(gè)診斷方法.大多數(shù)情況下,系統(tǒng)的性能問題都是由不良SQL代碼引起的,那么作為DBA,怎樣發(fā)現(xiàn)和解決這些SQL問題就顯得尤為重要.
本案例平臺為UNIX,所以不可避免的應(yīng)用了一些Unix下常用的工具.如vmstat,top等.
本文適宜讀者范圍:中高級.
系統(tǒng)環(huán)境:
OS:Solaris8
Oracle:8.1.7.4
問題描述:
開發(fā)人員報(bào)告系統(tǒng)運(yùn)行緩慢,已經(jīng)影響業(yè)務(wù)系統(tǒng)正常使用.請求協(xié)助診斷.
1.登陸數(shù)據(jù)庫主機(jī)
使用vmstat檢查,發(fā)現(xiàn)CPU資源已經(jīng)耗盡,大量任務(wù)位于運(yùn)行隊(duì)列:
2.使用Top命令
觀察進(jìn)程CPU耗用,發(fā)現(xiàn)沒有明顯過高CPU使用的進(jìn)程
3.檢查進(jìn)程數(shù)量
發(fā)現(xiàn)系統(tǒng)存在大量Oracle進(jìn)程,大約在300左右,大量進(jìn)程消耗了幾乎所有CPU資源,而正常情況下Oracle連接數(shù)應(yīng)該在100左右.