一次生產環境web服務遷移故障總結與反思

2021-09-03 04:25:04 字數 2563 閱讀 2984

一次生產環境web服務遷移故障總結【摘自老男孩培訓內部bbs平台】

本文是老男孩老師親自參與幫助學生解決的乙個生產案例,值得博友們學習和借鑑。

1)緊急問題發生時的排錯思路借鑑。<=該生非常有心,觀察的如此細緻,難得一也。

2)學生解決問題後的解決總結與反思習慣。<=該生能夠始終貫徹總結習慣,難得二也。

這兩條正是老男孩linux培訓的核心思想6重中的三重啊,重思路,重習慣,重總結。

該生能夠總結並和其他師兄師弟們分享自己的經歷經驗,感恩和分享之心,難得三也。

這三個難得,都是成就個人的不可或缺的關鍵,如果具備了,就算做別的職業,也必然是優秀的。

故障緣由:

公司伺服器要整改,準備用一台新伺服器安裝lamp環境,承擔現在的web伺服器,然後將現有的伺服器重新規劃整理;

故障現象:

當把**用rsync同步到新伺服器上,開啟apache服務,做好dns解析後,剛開始訪問的時候是ok的!但是在不到一分鐘的時候,**就開啟的非常慢,主頁開啟時間有時到了幾分鐘(幾乎相當於訪問不了),檢視apache報錯日誌,沒有明顯的錯誤異常日誌;

解決過程:

1、首先老男!孩老師讓先把dns切換到新伺服器上去,把流量引過來(因為當時不是訪問高峰期,**臨時的波動是允許的);

2、老男孩老師讓安裝上firbug等工具,檢視**訪問慢的時候是哪一部分的載入比較慢;

3、一分鐘後,**訪問開始變慢,根據第二點,檢視**首頁載入時間的時候,發現首頁載入的第乙個頁面項時間就超過了20s;

4、老男,孩老師在本機使用wget訪問,然後在機房同區域網的其他伺服器上wget 內網位址,結果一樣還是特變的慢(此時幾乎就已經排除是網路原因了!)

5、老男孩老師讓在**根目錄下面建立乙個靜態頁,去訪問(結果一樣,開啟時間非常慢),也幾乎排除了資料庫鏈結慢的原因,問題大約定在是apache的問題;

6、此時老-男孩老師先將apache stop,然後start,這樣發現**訪問速度沒有任何變化;

7、 老男孩老師這時先將**stop,然後使用killall命令將所有httpd程序殺死,再start,此時發現訪問速度突然快了,並且一分鐘後訪問又是很慢;

8、 對比第六步跟第七步發現多了乙個殺死httpd所有程序,訪問速度就能復原,分析一下得出這兩步做的區別就是第六步會保留已經建立鏈結的訪問,而第七步是直接全部訪問鏈結都沒有了(此時,老男孩老師就說很有可能是訪問連線數過多);

9、 檢視此時的併發連線數,大約在600左右,然後詢問我是什麼模式(當時apache是跑在perfork模式下的);

10、 開啟apache配置檔案,找到perfork模組的引數設定:

startservers10

minspareservers20

maxspareservers30

serverlimit5000

maxclients5000

maxrequestsperchild 10000

但看引數的設定,是沒有什麼問題的,此時老男孩老師開啟apache錯誤日誌,檢視錯誤資訊的時候發現有一條資訊記錄的是類似連線數的隱蔽問題;(當時的記錄已經清空了,這裡是翻譯過來的意思)

11、看到這裡老男-孩老師就確定是perfork模式的引數設定有問題,根本就沒生效,而導致採用預設的256,但是現在的鏈結併發數已經大於256了,所以後面的訪問使用者就處在等待的狀態,也就出現了一分鐘後就訪問特別慢的情況;

12、老男0孩老師根據之前規範的文件,看見serverlimit的位置在文件中配置的是第一行,而現在伺服器上的是配置在第四行的,將serverlimit引數行放到第一行,然後將apache關掉重啟;

13、這個時候再次訪問的時候,**一切正常,問題解決!!!!!

根據上面老男孩老師解決這個問題的過程。我總結了一下老男孩老師在結果這個問題時的思路:

1、出現問題,先分析故障故障,定義問題出現的大範圍(這次故障,在伺服器壓力並不大的時候就出現訪問很慢,老男孩老師就確定了是服務配置問題,跟伺服器硬體關係不大!)

2、定位問題之後逐一排查縮,把問題的出現原因逐漸縮小(伺服器硬體、網路因素、服務配置):

2、1通過伺服器top命令--

à得出不是伺服器硬體;

2、2通過內網訪問---

à排除是網路的因素

2、3通過建立靜態頁--

à排除apache以外其他服務配置問題

2、4通過檢視apache配置檔案--

à找出問題所在,解決問題

ps

:此次老

|男孩老師的故障排查過程我親眼目睹,老男孩老師在做每一步的時候,都十分有目的性,並且在一步銜接一步的去發現、排除問題;之前老男孩老師一直跟我們說思想往往比你學到一些東西知識更重要,以前的時候沒有體會到,但是這次看著老男孩老師解決故障的過程,除了羨慕之外,更深深的體會到了做一件事情思想的重要性!!有了思想,站在乙個巨集觀的位置去考慮問題,一切故障問題的解決思路、解決步驟都會清晰無比!!

Oracle 一次生產分庫,公升級,遷移

分庫目的 2 新庫公升級oracle10.2.0.1到10.2.0.4,資料庫本身修復了很多bug,增強了資料庫的穩定性.3 調整定時任務,把原先的定時任務由crontab job方式改為oracle scheduler.大概操作步驟如下 1 提前安裝oracle10.2.0.4,並部署stream...

一次生產環境mysql遷移操作(一)資料歸檔

一次生產環境mysql遷移操作 一 資料歸檔 一次生產環境mysql遷移操作 二 mysql空間釋放 碎片整理 在專案過程中我們經常要對資料庫進行遷移 歸檔 拆分等等操作,現在描述下幾種方案 我們有需要將物理盤上的mysql遷移到ssd上,先說一下生產環境一直有資料產生,且資料量達到500g。方案一...

記一次生產故障,nginx503

問題概述 web頁面進行login操作,控制台報503 系統版本 centos 6.8 服務架構 前端兩個nginx 伺服器,可外網,中間兩台業務伺服器,使用docker起兩組服務 後端3臺redis 哨兵 和三颱mongo 問題分析 由控制台報503可知是伺服器內部原因,可能是網路或者服務方面。解...