一散會,就趕緊上去找故障原因。這里先描述一下平臺環境,把邏輯關系弄清楚。在這個應用中,由一個web前段服務器,一個tomcat應用服務器及一個mysql服務器構成,所有的系統都是linux。用戶的請求先到前端的apache服務器,如果請求頁面是.jsp,apache就把請求轉交給tomcat服務器,tomcat再從數據庫獲取數據或向數據庫插入記錄。這是典型的3層應用邏輯。
登錄到數據庫mysql服務器,用mysql客戶端連接mysql數據庫,執行命令 mysql > show processlist; 沒發現什么異常,負載也很低。看來從這里看不出什么名堂。接下來當然該看mysql錯誤日志,發現如下異常:
這個報錯的大意是:內存基本耗盡,沒有再可以分配的空間。由此判斷是什么東西產生巨大的負荷導致系統內存被榨干了。不過現在數據庫服務器已經趨于平穩,暫時查不到什么原因引起這個故障。
基本情況掌握了,停下來休息片刻,于是順手收一下郵件,乖乖,來了一封報警郵件,趕緊打開,其內容如下:
報警消息表明主機61.154.105.100在10:59的這個時間負載過大。而這個主機正好是tomcat服務器,看來問題就在這個上面.為了近一步確認自己的想法,我來查看一下網絡流量:
從流量圖可以看出,產生異常流量的時間正好與報警信息的時間一致,再給同事打電話,問:“你們都在61.154.105.100 這個機器上干了啥?”,答:“執行了一條不正確的sql語句,發現問題后取消這個sql語句”。至此,原因查明!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com