閱讀目錄
最近有個(gè)用戶量 5W-10W 的 web 應(yīng)用,頻繁導(dǎo)致 weblogic 崩潰,讓運(yùn)維組很難受。
通過(guò)幾天跟蹤系統(tǒng)日志和 weblogic 運(yùn)行狀況,發(fā)現(xiàn)報(bào)錯(cuò)的姿勢(shì)有很多,其中對(duì)定位問(wèn)題比較關(guān)鍵的報(bào)錯(cuò):
ExecuteThread: '496' for queue: 'weblogic.kernel.Default (self-tuning)' has beenbusy for "712" seconds working on the request "XXXX", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.
weblogic 分配給 web 應(yīng)用使用的線程響應(yīng)返回周期最大為10分鐘,線程遲遲無(wú)法返回結(jié)果導(dǎo)致阻塞,并且這樣的刺頭線程越來(lái)越多。
運(yùn)行一段時(shí)間后達(dá)到 weblogic 阻塞線程的閥值,weblogic 自然就崩潰了。
剛開(kāi)始也試著調(diào)大 weblogic 響應(yīng)周期/阻塞線程的閥值,但是阻塞線程還是會(huì)存在并且很快達(dá)到閥值。
仔細(xì)比對(duì)奔潰前后日志,查看 weblogic 阻塞線程詳情,導(dǎo)致阻塞開(kāi)始罪魁禍?zhǔn)资菙?shù)據(jù)庫(kù)查詢需要很長(zhǎng)時(shí)間。
該系統(tǒng)與內(nèi)外圍很多廠商系統(tǒng)有進(jìn)行數(shù)據(jù)交互,數(shù)據(jù)庫(kù)里面旁根錯(cuò)雜的 db_link/synonyms/view/procedure。