歷史為鑑 穩定高於一切(後續篇)

2021-04-19 10:54:22 字數 1273 閱讀 4090

場景:(續原文《歷史為鑑:穩定高於一切》)

某專案組的系統在培訓的時候出現:40個左右的終端使用者在操作我們的培訓系統時,系統沒有了響應,終端使用者操作的瀏覽器一片「空白」,後台伺服器類似「掛起」,需要重新啟動後台的中介軟體伺服器。

剛開始,專案經理和技術經理對此現象的風險意識不夠,在多方教育下,逐步認識到目前發現並且解決問題才是最佳處理事機,等待上了生產系統,由於更多人員使用,會有太多干涉要素會加大分析和解決問題的難度。

經過教育後,專案組投入核心技術人員花了乙個星期對問題進行排查:

從業務角度,分析是否存在可能培訓時,學員都在學習相同的功能點,而該功能點的**實現存在併發隱患,造成資源阻塞甚至死鎖;

從技術角度,分析是否存在臨界資源沒有釋放,導致程序阻塞甚至死鎖;

通過壓力測試工具,對可能的情況進行模擬併發訪問;

通過不同的環境或者引數調整,進行對比檢查。

經過壓力測試,初步懷疑是沒有釋放資料庫連線造成的,原因如下:

壓力不大時(客戶端請求併發數/資料庫連線池最大併發連線數比較小):連線是會釋放的;

當壓力較大時(客戶端請求併發數/資料庫連線池最大併發連線數比較大),連線沒有釋放,通過debug可以跟蹤到apache連線池的wait操作處。程式一直在此等待連線。

最後定位確實是程式框架的問題,並且修復了相應的程式包。報告給我的原因如下:

我們的執行會使用連個連線,乙個生命週期長(命令的執行者建立),乙個生命周期短(命令執行本身建立使用),生命週期長的必須要等到命令執行完畢才能釋放連線,而命令的執行必須要獲取到連線,於是生命週期長的獲得到了連線,而生命周期短的卻拿不到連線,於是就不能執行,於是就停在這裡。

有一點在這裡要特別強調的是,作為基礎框架的編寫者,我們要非常重視質量,發現問題其實不可怕,對於出現問題,參與解決的心態以及專業的處理方法。對於乙個問題,需要有詳細的報告,參照technet.microsoft.com,我們可以將報告分為以下幾個部分:

symptoms,問題場景;

how to reproduce,如何重現此問題,可選,方便各個專案自檢本系統是否存在此情況;

cause,原因分析,可選,如果還沒有分析清楚情況,本項內容缺少;

status,目前狀態,是否已經解決還是未解決;

solution,如何解決,可選,如果已經解決或者有替代方案;

由於此案例涉及基礎程式框架,因此一定需要詳細分析在什麼版本開始引入此問題,定位清晰影響的版本,從而可以了解涉及到在建、已建、已投產的客戶以及專案的情況,採用積極的方式去解決問題,而不是等待另乙個專案反饋才去處理。

2023年,鑑歷史,謀發展

我也不知道從什麼時候開始比較關注歷史,學習的過程中確實帶給了我很多思考,這種思考沒有對與錯,而是多角度對事物發展的分析與認知。最近,偶然機會對宋代歷史又學習了一遍,主要講的是王安石變法,歷史上的變法無外乎要解決政治 經濟 軍事 文化等領域的疾症。變法是社會上下的共識,但是 變 的思路不一樣,蘇東坡認...

歷史性時刻之雲硬體支出首次高於傳統硬體

據調研公司 idc 聲稱,2018 年第三季度雲硬體支出佔 it 總收入的 50.9 知名調研公司 idc 聲稱,面向雲的 it 基礎設施 即伺服器 儲存系統和乙太網交換機 的季度收入正式超過傳統環境的銷售額。該調研公司稱,在本週發布的乙份報告中 基於季度性的 雲 it 基礎設施跟蹤報告 2018 ...

以題目為鑑,如何做數學筆記

在數學學習中我們少不了和例題打交道,認真學習例題,研究例題,咀嚼例題的一字一句,從例題中提煉方法 總結思路,對於提高我們自己的數學素養有很大的幫助,不過有些學生還是不太會例題的學習方法,不知道從哪些方面總結提煉,本博文試著做個示範,不妥之處,煩請告知。這是一道對許多學生而言都有難度的數學題目,使用到...