成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Was故障分析及優(yōu)化整改方案

IT那活兒 / 2718人閱讀
Was故障分析及優(yōu)化整改方案

點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!?。?/strong>


  
7月28日15點(diǎn)50分左右,某管理平臺(tái)一臺(tái)應(yīng)用服務(wù)器主機(jī)出現(xiàn)前端應(yīng)用請(qǐng)求反應(yīng)嚴(yán)重超慢的現(xiàn)象,17點(diǎn)48分重啟應(yīng)用服務(wù)后,應(yīng)用訪問暫時(shí)恢復(fù)正常。


問題故障原因定位

從錯(cuò)誤日志分析,錯(cuò)誤原因的數(shù)據(jù)庫(kù)連接池的連接達(dá)到最大設(shè)定值,導(dǎo)致系統(tǒng)無(wú)法獲取新的數(shù)據(jù)庫(kù)連接導(dǎo)致。

數(shù)據(jù)庫(kù)連接池連接最大值設(shè)置為200,如沒有特殊情況發(fā)生,系統(tǒng)不會(huì)出現(xiàn)連接數(shù)不足的現(xiàn)象。按以往的經(jīng)驗(yàn)造成連接數(shù)不足現(xiàn)象的原因有以下幾個(gè):

  • 系統(tǒng)發(fā)生數(shù)據(jù)庫(kù)死鎖導(dǎo)致大量連接被鎖定;
  • 數(shù)據(jù)庫(kù)系統(tǒng)超負(fù)荷運(yùn)轉(zhuǎn)導(dǎo)致反應(yīng)變慢;
  • 網(wǎng)絡(luò)連接問題導(dǎo)致無(wú)法連接數(shù)據(jù)庫(kù);
  • 系統(tǒng)有大數(shù)據(jù)量操作導(dǎo)致;
  • 系統(tǒng)程序有未釋放連接的程序bug,導(dǎo)致連接被使用光;
  • 數(shù)據(jù)庫(kù)其他問題導(dǎo)致無(wú)法獲取連接。

通過(guò)排查該應(yīng)用系統(tǒng)各個(gè)層面的影響因素,最終將故障原因定位在連接池上。

問題分析過(guò)程

1. 首先檢查數(shù)據(jù)庫(kù)是否有死鎖

從前端發(fā)送到2節(jié)點(diǎn)的請(qǐng)求可以立馬得到響應(yīng),請(qǐng)求的頁(yè)面立馬顯示出來(lái)。從以上現(xiàn)象可以判斷,數(shù)據(jù)庫(kù)的訪問是肯定沒有問題的,不會(huì)存在死鎖或者數(shù)據(jù)庫(kù)宕機(jī)的可能;另外通過(guò)后臺(tái)查看數(shù)據(jù)庫(kù)沒有死鎖對(duì)象。
2. 檢查數(shù)據(jù)庫(kù)系統(tǒng)的負(fù)載情況
檢查數(shù)據(jù)庫(kù)主機(jī)的日志,發(fā)現(xiàn)CPU、內(nèi)存占用率都很低,數(shù)據(jù)庫(kù)主機(jī)允許的最大連接數(shù)為1500,遠(yuǎn)超2臺(tái)應(yīng)用服務(wù)器連接池配置的共400的數(shù)據(jù)庫(kù)連接數(shù),足以滿足應(yīng)用的數(shù)據(jù)庫(kù)連接需求。
3. 檢查網(wǎng)絡(luò)連接情況
這臺(tái)服務(wù)器的WAS服務(wù)重啟后,請(qǐng)求立即得到快速響應(yīng),頁(yè)面很快就展現(xiàn)出來(lái),說(shuō)明網(wǎng)絡(luò)沒有任何問題。
4. 應(yīng)用服務(wù)器的資源使用情況
通過(guò)重新啟動(dòng)1節(jié)點(diǎn)中的WAS應(yīng)用服務(wù)器之后,前端的請(qǐng)求發(fā)送到1節(jié)點(diǎn)之后,前端的請(qǐng)求可以立馬得到反應(yīng),而且請(qǐng)求的頁(yè)面也很快展現(xiàn)顯示出來(lái),可以認(rèn)為是WAS應(yīng)用服務(wù)器釋放了相應(yīng)的資源,可以滿足前端的請(qǐng)求響應(yīng)了。同時(shí),從websphere的層面來(lái)看,沒有生成相應(yīng)的JavaCore和HeapDump文件,可以判斷機(jī)器的CPU和MEMORY資源也很正常,沒有發(fā)生內(nèi)存泄漏等嚴(yán)重問題存在。
平臺(tái)使用的連接池是DBCP(DataBase connection pool)數(shù)據(jù)庫(kù)連接池。是 apache 上的一個(gè) java 連接池項(xiàng)目,也是 tomcat 使用的連接池組件,也就是根本沒用到WAS的連接池。
5. WAS日志信息分析
繼續(xù)檢查1節(jié)點(diǎn)上WAS的應(yīng)用日志信息,發(fā)現(xiàn)WAS的應(yīng)用服務(wù)器重啟之前有大量如下報(bào)錯(cuò):
APP-1:
[7/27/14 15:51:54:938 GMT+08:00] 000000db AcfCoreServle E com.ursa.acf.plugins.todomessage.impl.DealReadToDoMsgMgr list error.plugin.user.error_sqlerror
com.ursa.acf.plugins.user.UserPluginException: error.plugin.user.error_sqlerror
at com.ursa.acf.plugins.user.ursaimpl.UrsaUser.j(UrsaUser.java:646)
at com.ursa.acf.plugins.user.ursaimpl.UrsaUser.(UrsaUser.java:53)
at com.ursa.acf.plugins.user.ursaimpl.UrsaUserManager.getUser(UrsaUserManager.java:178)
at com.ursa.acf.plugins.user.UserHelper.getUser(UserHelper.java:52)
at com.ursa.acf.plugins.todomessage.impl.DealReadToDoMsgMgr.list(DealReadToDoMsgMgr.java:132)
at com.itss.xz.test.login.AcfPanel_DBSY.setPanel(AcfPanel_DBSY.java:265)
at com.ursa.acf.plugins.acfpage.acfpanel.AcfPanelShow.acfShow(AcfPanelShow.java:65)
at com.ursa.acf.plugins.acfshow.AcfShow.acfExecute(AcfShow.java:38)
at com.ursa.acf.core.servlet.AcfCoreAction.execute(AcfCoreAction.java:62)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:575)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1147)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:722)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:449)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:125)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:92)
at com.ursa.acf.core.EncodingFilter.doFilter(EncodingFilter.java:46)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:192)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:89)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:919)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1016)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:883)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1659)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:276)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1648)
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:114)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at com.ursa.acf.component.datasource.impl.StrutsDSManager.getConnection(StrutsDSManager.java:107)
at com.ursa.acf.component.datasource.DatabaseHelper.getConnection(DatabaseHelper.java:42)
at com.ursa.acf.plugins.user.ursaimpl.UrsaUser.j(UrsaUser.java:629)

... 39 more
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1144)
at org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:79)
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
... 43 more
其中紅色字體部分:
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
指出了產(chǎn)生問題的原因:
拋出此異常的原因?yàn)檫B接池泄漏,也就是再也無(wú)法從連接池中獲取有效的數(shù)據(jù)庫(kù)連接。
可能由于頻繁的刷新頁(yè)面導(dǎo)致上一次獲取的connection還沒有得到有效釋放,下一次的connection請(qǐng)求已經(jīng)到達(dá),如是刷新多次后導(dǎo)致池資源耗盡,即所謂的連接池泄漏。
而且,在此種情況下,最糟糕的是異常發(fā)生后導(dǎo)致整個(gè)服務(wù)向連接池發(fā)起connection請(qǐng)求都將一直拋出如上異常,無(wú)法恢復(fù)到正常狀態(tài)。向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器沒有響應(yīng),最簡(jiǎn)單的辦法是重新啟動(dòng)釋放連接池的資源,才能使連接池的連接數(shù)恢復(fù)到一個(gè)正常狀態(tài)。前端的應(yīng)用程序訪問才能正常。
查看WAS重啟后的日志信息,發(fā)現(xiàn)大量的如下錯(cuò)誤信息:
  • 2節(jié)點(diǎn):
[7/28/14 10:41:32:109 GMT+08:00] 00004676 filter        E com.ibm.ws.webcontainer.filter.FilterInstanceWrapper service SRVE8109W: Uncaught exception thrown by filter EncodingFilter: java.io.FileNotFoundException: SRVE0190E: File not found: /xzpage/bjyc/fs/resources/styles/ursadefault.css
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:443)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:125)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:92)
at com.ursa.acf.core.EncodingFilter.doFilter(EncodingFilter.java:46)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:192)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:89)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:919)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1016)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3639)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:950)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1659)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1648)
  • 1節(jié)點(diǎn):
[7/28/14 8:47:21:557 GMT+08:00] 00000036 filter        E com.ibm.ws.webcontainer.filter.FilterInstanceWrapper service SRVE8109W: Uncaught exception thrown by filter EncodingFilter: java.io.FileNotFoundException: SRVE0190E: File not found: /xzdefault.css
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:443)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:125)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:92)
at com.ursa.acf.core.EncodingFilter.doFilter(EncodingFilter.java:46)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:192)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:89)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:919)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1016)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3639)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:950)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1659)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1648)
6. 對(duì)大數(shù)據(jù)量操作的分析
因?yàn)闆]有針對(duì)用戶的歸檔和查詢操作進(jìn)行記錄,因此無(wú)法獲悉問題發(fā)生前的客戶操作情況,而大量的歸檔、查詢操作會(huì)導(dǎo)致應(yīng)用的負(fù)載急劇增加,數(shù)據(jù)庫(kù)連接數(shù)量瞬間爆發(fā),導(dǎo)致連接池滿,后續(xù)需要對(duì)客戶的這類操作進(jìn)行詳細(xì)記錄,同時(shí)通過(guò)應(yīng)用層面做些適當(dāng)?shù)南拗拼胧┍苊獯罅恐貜?fù)點(diǎn)擊操作等。
7. 應(yīng)用代碼的分析
由于時(shí)間關(guān)系,沒來(lái)得及檢查系統(tǒng)的所有源代碼,以及是否有未關(guān)閉數(shù)據(jù)庫(kù)連接的程序,所以針對(duì)如何導(dǎo)致連接池泄露的根本原因還無(wú)法查明,需要后續(xù)排查應(yīng)用代碼。
9. 應(yīng)用調(diào)用數(shù)據(jù)庫(kù)的模式

應(yīng)用調(diào)用數(shù)據(jù)庫(kù)使用的常連接,意味著即使用戶沒有在做業(yè)務(wù)的情況下,也一直不釋放而占用著數(shù)據(jù)庫(kù)連接的資源,也會(huì)影響別的用戶訪問數(shù)據(jù)庫(kù)。

系統(tǒng)優(yōu)化整改要求

根據(jù)連接池問題,系統(tǒng)優(yōu)化整改要求如下:

1. 增加Apache上的最大連接數(shù)

由于應(yīng)用調(diào)用數(shù)據(jù)庫(kù)采用的常連接,確實(shí)很消耗連接數(shù)資源,因此本操作需要優(yōu)先執(zhí)行。
加大最大連接數(shù)到300,同時(shí)對(duì)連接池進(jìn)行監(jiān)控,設(shè)置報(bào)警閥值,當(dāng)連接總數(shù)達(dá)到閥值后進(jìn)行緊急處理,進(jìn)行日志數(shù)據(jù)抓取,詳見“5. 應(yīng)急預(yù)案”。
閥值:Aqsiq 180  Xzblob 140

2. 大數(shù)據(jù)量操作的優(yōu)化建議

由于無(wú)法獲悉客戶操作情況,因此不好判斷一定就是客戶對(duì)大數(shù)據(jù)量誤操作導(dǎo)致的連接數(shù)急劇增加撐滿了連接池,因此后續(xù)也需要針對(duì)這塊進(jìn)行優(yōu)化整改,本操作需要優(yōu)先執(zhí)行。

對(duì)大數(shù)據(jù)量操作增加操作日志,以及對(duì)可能發(fā)生大數(shù)據(jù)量操作的程序進(jìn)行以下優(yōu)化。

  • 收文查詢打印功能限制最大打印數(shù)量(小于1000條),超過(guò)數(shù)量會(huì)在打印的文檔最后輸出“打印數(shù)量超過(guò)1000條請(qǐng)優(yōu)化查詢后再進(jìn)行打印”;
  • 收文查詢記錄查詢?nèi)罩?,記錄查詢?nèi)?、查詢時(shí)間、查詢sql等信息;
  • 歸檔操作記錄日志,記錄歸檔人、歸檔時(shí)間、歸檔條數(shù)等日志;
  • 對(duì)收文查詢、歸檔操作實(shí)現(xiàn)屏蔽重復(fù)操作的功能(屏蔽雙擊或多次快速點(diǎn)擊操作)。

3. 建議查看如下方法中的代碼問題

檢查系統(tǒng)的所有源代碼,檢查是否有未關(guān)閉數(shù)據(jù)庫(kù)連接的程序。
可重點(diǎn)檢查以下代碼:
A) at com.ursa.acf.core.EncodingFilter.doFilter(EncodingFilter.java:46)
doFilter(EncodingFilter.java:46)方法中的46行代碼

B) com.ursa.acf.component.datasource.impl.StrutsDSManager.getConnection
(StrutsDSManager.java:107)
getConnection()方法中的107行代碼

C) com.ursa.acf.component.datasource.DatabaseHelper.getConnection
(DatabaseHelper.java:42)
getConnection(DatabaseHelper.java:42) 方法中的42行代碼

4. 依據(jù)用戶的應(yīng)用使用習(xí)慣進(jìn)行適當(dāng)調(diào)整

鑒于應(yīng)用調(diào)用數(shù)據(jù)庫(kù)使用的“常連接”,意味著即使用戶沒有在做OA業(yè)務(wù)的情況下,也一直不釋放而占用著數(shù)據(jù)庫(kù)連接的資源,也會(huì)影響別的用戶訪問數(shù)據(jù)庫(kù)。
因此建議應(yīng)用開發(fā)方強(qiáng)制取消用戶常連接,比如:每24小時(shí),常連接中斷。

5. Websphere應(yīng)用服務(wù)器的優(yōu)化

由于是32位的WAS平臺(tái),對(duì)于32位的操作系統(tǒng),最多只能使用4G的內(nèi)存,而且又由于JVM的特殊性,對(duì)于32的JAVA 虛擬機(jī),它只用到2G內(nèi)存,考慮到JVM本身的原因,最多又只能使用2G內(nèi)存的75%,所以,對(duì)于32位的JVM的堆最大大小的設(shè)置,不要超過(guò)1.5G(1536M),對(duì)于,上面的最大堆大小,建議改為1536 MB。
對(duì)于垃圾回收機(jī)制問題,一般在生產(chǎn)環(huán)境建議不要開啟,因?yàn)殚_啟這個(gè)功能,會(huì)進(jìn)行垃圾的回收功能,會(huì)損耗JVM的資源,也會(huì)影響性能。所以建議最好【詳細(xì)垃圾回收】不要開啟,除非是需要進(jìn)行GC問題的故障診斷功能,才需要開啟該功能。

6. 升級(jí)WAS主機(jī)的操作系統(tǒng)及中間件

現(xiàn)網(wǎng)WAS主機(jī)部署的操作系統(tǒng)是32位,WAS中間件的位數(shù)也是32位。
建議如有可能,最好是安裝64位的操作系統(tǒng),同時(shí)也安裝64位的websphere應(yīng)用服務(wù)器中間件。尤其在應(yīng)用訪問數(shù)據(jù)庫(kù)是基于常連接的調(diào)用模式的情況下,更耗系統(tǒng)資源。

7. 升級(jí)前端Apache分發(fā)機(jī)制的負(fù)載均衡功能

另外我們也認(rèn)為前端Apache分發(fā)機(jī)制的負(fù)載均衡功能確實(shí)不盡如人意,2節(jié)點(diǎn)主機(jī)的連接數(shù)都達(dá)到200的極限值了,可故障發(fā)生當(dāng)時(shí)另外一臺(tái)主機(jī)1節(jié)點(diǎn)的連接數(shù)還不到120;很顯然?;贏pache軟件分發(fā)負(fù)載均衡的功能還是大大弱于類似F5等硬件負(fù)載均衡機(jī)制的。

主要有兩個(gè)原因:

  • 硬件負(fù)載均衡設(shè)備可根據(jù)連接數(shù)、后臺(tái)服務(wù)器的負(fù)載壓力判斷實(shí)現(xiàn)真正的負(fù)載均衡;而Apache基本上是采用輪詢的方式。
  • 另外用apache、tomcat這種部署方式導(dǎo)致主分發(fā)節(jié)點(diǎn)成為了單點(diǎn),一旦這個(gè)節(jié)點(diǎn)出現(xiàn)故障,整個(gè)系統(tǒng)就會(huì)癱瘓;而硬件負(fù)載均衡設(shè)備可以實(shí)現(xiàn)每個(gè)節(jié)點(diǎn)均可充當(dāng)主節(jié)點(diǎn),大大提升系統(tǒng)可靠性和高可用性。
如果系統(tǒng)采用了硬件負(fù)載均衡設(shè)備,兩臺(tái)應(yīng)用服務(wù)器的連接數(shù)會(huì)保持均衡,比如都是160~170左右,應(yīng)該可以規(guī)避10月27日下午發(fā)生的故障。

強(qiáng)烈建議:如系統(tǒng)后續(xù)有升級(jí)改造,在資金寬裕的情況下,采用硬件負(fù)載均衡設(shè)備。

應(yīng)急預(yù)案

以后針對(duì)應(yīng)用的類似問題,我方建議采用以下應(yīng)急預(yù)案。
當(dāng)主機(jī)的應(yīng)用出現(xiàn)癱瘓的情況下,首先重啟服務(wù)優(yōu)先保證應(yīng)用的持續(xù)運(yùn)行,再進(jìn)行故障診斷、排錯(cuò)及后續(xù)的優(yōu)化。
因此需要建立相應(yīng)的應(yīng)急數(shù)據(jù)抓取機(jī)制,以便問題發(fā)生后可以對(duì)當(dāng)時(shí)的運(yùn)行情況進(jìn)行分析找出問題根本原因,抓取的內(nèi)容由各家聯(lián)合統(tǒng)一進(jìn)行分析。

數(shù)據(jù)抓取內(nèi)容如下:

  • 連接數(shù)抓取,用于分析數(shù)據(jù)庫(kù)連接使用情況。
    執(zhí)行sql如下:
    select username,machine,count(username) from v$session where username is not null and username <> SYS group by machine,username order by machine
    分別在數(shù)據(jù)庫(kù)服務(wù)器1和2上執(zhí)行。
  • 應(yīng)用服務(wù)器日志抓取,分析程序錯(cuò)誤。當(dāng)前日志保存5個(gè)歷史文件,如有問題發(fā)生很有可能會(huì)大量產(chǎn)生日志,導(dǎo)致前面的日志被沖掉,所以需要加大日志保存的數(shù)量和時(shí)間。
  • 數(shù)據(jù)庫(kù)鎖情況抓取。
  • 應(yīng)用服務(wù)器內(nèi)存快照抓取,用于分析問題發(fā)生時(shí)系統(tǒng)正在運(yùn)行的程序。
  • 應(yīng)用服務(wù)器內(nèi)存、cpu使用情況抓取。

本文作者:李松樺(上海新炬王翦團(tuán)隊(duì))

本文來(lái)源:“IT那活兒”公眾號(hào)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129315.html

相關(guān)文章

  • 2月第3周業(yè)務(wù)風(fēng)控關(guān)注|上海網(wǎng)信辦復(fù)測(cè)23個(gè)被約談APP 涉1號(hào)店、小紅書等

    摘要:上海網(wǎng)信辦復(fù)測(cè)個(gè)被約談涉及號(hào)店小紅書等近日,上海市網(wǎng)信辦對(duì)此前被約談的個(gè)開展回頭看復(fù)測(cè)工作,要求各企業(yè)按照整改報(bào)告切實(shí)做好整改工作。 易盾業(yè)務(wù)風(fēng)控周報(bào)每周呈報(bào)值得關(guān)注的安全技術(shù)和事件,包括但不限于內(nèi)容安全、移動(dòng)安全、業(yè)務(wù)安全和網(wǎng)絡(luò)安全,幫助企業(yè)提高警惕,規(guī)避這些似小實(shí)大、影響業(yè)務(wù)健康發(fā)展的安全風(fēng)險(xiǎn)。 1、上海網(wǎng)信辦復(fù)測(cè)23個(gè)被約談APP 涉及1號(hào)店、小紅書等 近日,上海市網(wǎng)信辦對(duì)此前被...

    forsigner 評(píng)論0 收藏0
  • 1月第1周業(yè)務(wù)風(fēng)控關(guān)注| 國(guó)家網(wǎng)信辦啟動(dòng)專項(xiàng)行動(dòng) 劍指12類違法違規(guī)互聯(lián)網(wǎng)信息

    摘要:國(guó)家網(wǎng)信辦啟動(dòng)專項(xiàng)行動(dòng)劍指類違法違規(guī)互聯(lián)網(wǎng)信息近日,針對(duì)網(wǎng)絡(luò)生態(tài)問題頻發(fā)各類有害信息屢禁不止等突出問題,為積極回應(yīng)民眾關(guān)切,國(guó)家網(wǎng)信辦啟動(dòng)網(wǎng)絡(luò)生態(tài)治理專項(xiàng)行動(dòng)。中國(guó)鐵路總公司官方微博回應(yīng)網(wǎng)傳信息不實(shí),網(wǎng)站未發(fā)生用戶信息泄露。 易盾業(yè)務(wù)風(fēng)控周報(bào)每周呈報(bào)值得關(guān)注的安全技術(shù)和事件,包括但不限于內(nèi)容安全、移動(dòng)安全、業(yè)務(wù)安全和網(wǎng)絡(luò)安全,幫助企業(yè)提高警惕,規(guī)避這些似小實(shí)大、影響業(yè)務(wù)健康發(fā)展的安全風(fēng)...

    張巨偉 評(píng)論0 收藏0
  • 深度分析 | MGR相同GTID產(chǎn)生不同transaction故障分析

    摘要:對(duì)于該故障的分析,我們要從主從實(shí)例相同,但是事務(wù)不同的原因入手,該問題猜測(cè)與相關(guān),我們針對(duì)同步事務(wù)的時(shí)序做如下分析。接受者被動(dòng)接收提議者的提議,并記錄和反饋,或?qū)W習(xí)達(dá)成共識(shí)的提議。節(jié)點(diǎn)將的提案信息發(fā)送至組內(nèi),仍收到了大多數(shù)成員返回。 本文是由愛可生運(yùn)維團(tuán)隊(duì)出品的「MySQL專欄」系列文章,內(nèi)容來(lái)自于運(yùn)維團(tuán)隊(duì)一線實(shí)戰(zhàn)經(jīng)驗(yàn),涵蓋MySQL各種特性的實(shí)踐,優(yōu)化案例,數(shù)據(jù)庫(kù)架構(gòu),HA,監(jiān)控等...

    wuaiqiu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<