摘要:最近線上一個(gè)應(yīng)用出現(xiàn)了一個(gè)無(wú)法加載,卡住了的問(wèn)題。因此確定問(wèn)題,是開(kāi)發(fā)新上線的代碼線程棧用的太大,導(dǎo)致原先設(shè)置的不足,需要調(diào)大。最后把預(yù)發(fā)布和生產(chǎn)環(huán)境的調(diào)大后,問(wèn)題解決。參考資料優(yōu)化系列之一調(diào)整的大小
最近線上一個(gè)應(yīng)用出現(xiàn)了一個(gè) tomcat 無(wú)法加載,卡住了的問(wèn)題。引起該問(wèn)題的原因是開(kāi)發(fā)同事的一個(gè)老項(xiàng)目新增了一些功能,需要進(jìn)行上線,首先發(fā)布到預(yù)發(fā)布環(huán)境后,重起 tomcat,發(fā)現(xiàn)出現(xiàn)如下現(xiàn)象:
Oct 27, 2014 10:31:14 AM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["ajp-bio-9009"] Oct 27, 2014 10:31:14 AM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 586 ms Oct 27, 2014 10:31:14 AM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Oct 27, 2014 10:31:14 AM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.40 10:31:20,011[INFO]MLog:80 MLog clients using log4j logging.
即 tomcat 的日志顯示,走到 MLog clients using log4j logging 這就不往下走了。
雖然我的預(yù)發(fā)布環(huán)境沒(méi)有做任何變更,但是為了穩(wěn)妥起見(jiàn),還是把代碼在生產(chǎn)集群中的其中一臺(tái)服務(wù)器發(fā)布下,結(jié)果表現(xiàn)的現(xiàn)象是一樣的,還是加載不成功。
但是開(kāi)發(fā)同事又說(shuō)在測(cè)試環(huán)境是能正常加載的,為了證明不是環(huán)境問(wèn)題,所以讓開(kāi)發(fā)同事先回滾代碼,回滾后,再發(fā)布,能正常加載,所以我讓開(kāi)發(fā)同事排查下代碼,看是不是代碼有問(wèn)題,因?yàn)殚_(kāi)發(fā)同事上線了兩個(gè)新功能,所以我讓其把功能拆開(kāi)了上線發(fā)布,結(jié)果是上線其中一個(gè)功能能正常加載,上線另外一個(gè)不能正常加載,那根據(jù)這個(gè)可以判斷是另外一個(gè)功能的代碼問(wèn)題了。但是結(jié)果一天的排查,還是不能確定到底是什么問(wèn)題。同時(shí)開(kāi)放同事堅(jiān)決表示測(cè)試和開(kāi)發(fā)都沒(méi)有問(wèn)題,為什么就生產(chǎn)有問(wèn)題。所以只好繼續(xù)從環(huán)境入手了。
我最后讓開(kāi)發(fā)把測(cè)試環(huán)境的 tomcat 配置發(fā)給我看下,看是否不一致(最后才查看 tomcat 配置,是因?yàn)槲覀兊沫h(huán)境 tomcat 類(lèi)似的一直都是測(cè)試,預(yù)發(fā)布,生產(chǎn)保持一致的,所以當(dāng)時(shí)沒(méi)有想到這方面)。最后一對(duì)比發(fā)現(xiàn),tomcat 配置的 -Xss 這個(gè)值不一樣,預(yù)發(fā)布和生產(chǎn)的是設(shè)置的 256k,而測(cè)試環(huán)境是設(shè)置的 512k,最后把測(cè)試環(huán)境的該值調(diào)小到與預(yù)發(fā)布環(huán)境一致。重顯了該現(xiàn)象。因此確定問(wèn)題,是開(kāi)發(fā)新上線的代碼線程棧用的太大,導(dǎo)致原先設(shè)置的不足,需要調(diào)大。最后把預(yù)發(fā)布和生產(chǎn)環(huán)境的 -Xss 調(diào)大后,問(wèn)題解決。
注:運(yùn)維問(wèn)題真是不能想當(dāng)然,要一步步的把所有的差異都對(duì)比,然后一一的修正測(cè)試。
參考資料:
JVM優(yōu)化系列之一(-Xss調(diào)整Stack Space的大?。?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/64167.html
摘要:標(biāo)準(zhǔn)擴(kuò)展類(lèi)加載器,它負(fù)責(zé)加載或由系統(tǒng)變量指定位置中的類(lèi)庫(kù)加載到內(nèi)存中。系統(tǒng)類(lèi)加載器,它負(fù)責(zé)將類(lèi)路徑中的類(lèi)庫(kù)加載到內(nèi)存。 類(lèi)加載機(jī)制大家應(yīng)該已經(jīng)非常熟悉了,采取雙親委派機(jī)制,當(dāng)加載一個(gè)類(lèi)時(shí),首先將加載任務(wù)委托給父類(lèi)加載器,依次遞歸,如果父類(lèi)加載器可以完成加載任務(wù),就成功返回;如果父類(lèi)無(wú)法加載,才由自己加載。 雙親委派機(jī)制的作用:防止內(nèi)存中出現(xiàn)多份相同的字節(jié)碼。 其他規(guī)則:1.隱式加載:...
閱讀 863·2021-11-09 09:47
閱讀 1694·2019-08-30 15:44
閱讀 1223·2019-08-26 13:46
閱讀 2193·2019-08-26 13:41
閱讀 1391·2019-08-26 13:32
閱讀 3863·2019-08-26 10:35
閱讀 3620·2019-08-23 17:16
閱讀 532·2019-08-23 17:07