[Case] Web Server不定時卡住(凍結)

作者: qpowjohn (pose)   2020-02-15 21:33:19
[硬體資訊]
Host: Windows Server 2012 R2
Guest OS: Windows Server 2012 R2 10core/24GB
[軟or韌體版本資訊]
IIS 8.5
開啟DFS
防毒軟體使用ESET
已做過machine.config調整可連線數及減少TIME_WAIT等相關設定
已做過Regedit調整參數,參考網址如下
https://www.filehold.com/help/technical/Windows-Server-Tuning-to-Prevent-TCPIP
-Port-Exhaustion
縮網址:https://reurl.cc/Qp03b9
[狀況描述]
前端採用HAProxy做負載平衡
後端串2個VM處理服務
每台VM上有一百多個AppPool在運作
CPU使用量大概在30%~50%左右(開工作管理員切到效能分頁查看)
RAM使用量經常性在80%以上(開工作管理員切到效能分頁查看)
從HAProxy Log上可以看到以下狀況
https://imgur.com/QraRriT
會出現504回應是因為HAProxy設定30秒無回應就往Client拋回504
[已嘗試過的方法]
從Event Log看不到當下有哪些錯誤
硬體無異常(皆為HP主機或San Storage)
以上,感謝各位觀看
已經找不到方法了才上來討教
感謝各位先進的協助,謝謝
作者: asdfghjklasd (好累的大一生活)   2020-02-15 22:16:00
你只看log ,實際做了什麼 TS ?telnet 有 504 的 80 port?
作者: dennisxkimo (Dennis(一上B就糟糕))   2020-02-15 22:48:00
看來是壓力測試API運作haproxy環境遇到問題上來問
作者: qpowjohn (pose)   2020-02-15 22:49:00
先是看到Port用盡,所以做了註冊表和config調整改了之後確實沒有了,但是卻會不定時從HAProxy看到問題然後RDP進不去,從hypervisior也進不去(已關加強模式)只能從hypervisior強制關閉重開VM..正常的回應速度大概都是100ms以內,超過30000ms很不正常而且已經排除AppPool回收的階段站台本身每分鐘都在打,所以也排除超時未使用被回收以上回答算是測試嗎...?
作者: dennisxkimo (Dennis(一上B就糟糕))   2020-02-15 22:56:00
沒記錯的話 那log是這樣看,事件504返回長度194
作者: qpowjohn (pose)   2020-02-15 22:56:00
telnet這段沒做過,因為都是不定時卡住,抓不準時間
作者: dennisxkimo (Dennis(一上B就糟糕))   2020-02-15 22:59:00
apppool 進階設定預設值 好像不適合高量頻繁
作者: qpowjohn (pose)   2020-02-15 23:00:00
HAProxy應該是沒有問題的,提出圖片只是證明說MS卡住哦,求解,我們的服務確實是每天會被打百萬次...如果是加VM上去做LB的方式也是可行,只是我感覺不是這層面的問題...覺得好像是系統哪邊沒設定好
作者: xxoo1122 (一個連IE6都能相容的男人)   2020-02-16 00:52:00
你POST什麼資料?有DB嗎?
作者: ddoll288 (風兒卿卿)   2020-02-16 02:14:00
你給的資料玩全無法除錯,只知道504,504誰造成的不知如果你不敢透漏太多就自己請寫程式的RD或廠商來處理機器預設可以開5000port是沒有問題的,問題是程式壞了導致5000port被request塞爆,如果有保密問題就花錢吧
作者: darktasi (桃園達克大叔)   2020-02-16 03:32:00
server配置資訊不夠怎麼判斷
作者: asdfghjklasd (好累的大一生活)   2020-02-16 04:28:00
不忍噓
作者: dennisxkimo (Dennis(一上B就糟糕))   2020-02-16 08:27:00
這問題有時侯不是只有一面要看 但是不會用這麼少的線索來找
作者: qpowjohn (pose)   2020-02-16 09:25:00
不好意思,讓各位有點隔空抓藥的感覺,因為抓不準系統卡住的時間,然後正常的時候進去看netstat也沒啥問題(大概300-400左右的連線),其實給的圖都是一樣的資訊,只能證明說那個時間點request打進去完全無法回應。server配置,是指型號嗎?HP DL460c G8
作者: konkonchou (卡卡貓)   2020-02-16 23:23:00
我會查web handler是不是用到不該用的,而造成排隊
作者: ddoll288 (風兒卿卿)   2020-02-17 04:17:00
既然是VM的問題,那應該是請寫AP的RD或廠商來處理你不給AP是什麼,就要大家隔空抓藥,也是了不起req超過30s通常是資源鎖定或程式壞了等timeout如果你當過RD或是DevOp,沒有CD/CI,這種事情根本是日常很多RD開發環境都很亂,然後issue丟來都說我跑沒問題然後MIS只能吃悶虧,抓出問題還好,沒抓到就是每天狗幹最可憐的是user,因為系統有問題每天哎哎哎,加班做不完所以要先保留現場,確認網路硬體作業系統都正常最好兩台VM在同一台主機內,把問題縮限在VM內,然後再叫RD或廠商來解決問題這問題我猜是程式的並行寫得不好,造成DB lock,然後大家就在等那個lock解鎖,所以就拼命timeout,這也是日常你可以試試看先不要用haproxy,把req都塞到一台去跑隔一段時間沒問題再換另一台,我猜應該是都沒有問題確認問題出在並行,再把問題交給RD或廠商處理有些driver如果連線沒有正常關閉,DB lock是永不釋放的RD只在哪邊跑個幾次,沒有壓測,根本測不出問題的
作者: dennisxkimo (Dennis(一上B就糟糕))   2020-02-17 12:56:00
有些RD只懂RD,有時我是問他的程式工作內容,對方願意就一起解問題你說不定時卡住,你可以想辦法追蹤各種數據多收集一點線索,有時候掛掉前的資料也是破案關鍵
作者: domototice (tice)   2020-02-19 14:24:00
proxy 30秒無回應 通常會是什麼造成? 太多要求?有proxy伺服器嗎?會是proxy負載過重嗎? 對不起 我的功力不足。。。。proxytSR port用盡 如何處理呢? VM可接受的連接數?port用盡 可以修改port使用數再度使用新增的port嗎?求解答謝謝...!proxy伺服器 可以再多一台嗎? 兩台下去配置???你給的資訊是 server2003的port處理方式說。。。。而且 server2012 怎麼可以說是硬體呢? 是運行環境說可以請教你的HAproxy 怎麼跟WINSR DFS怎麼做結合嗎?IIS8.5的最大連接數呢? 方便請教嗎? qpowjohn大大可以再請教HAproxy可以在winserver2012上運行嗎?http://oset.mcu.edu.tw/2009/paper/09.pdfHAProxy可在WIN上運行 那它的最大連接數呢?https://kknews.cc/zh-tw/news/92qe3o5.html所以問題不是在於HAProxy 就是在於兩個VM配置問題囉?另一個VM能正常接受HAProxy的連入嗎?HAProxy有釋放資源嗎? 還是阻擋連入數 你只設30秒外丟回應回去求最後的解答哦~感謝大大....!
作者: qpowjohn (pose)   2020-02-19 17:14:00
haproxy用linux架,504是server經過30秒無回應就拋給client,發生狀況的當下是一台server正常另一台無回應,其實就是個很普通的做法
作者: domototice (tice)   2020-02-19 21:23:00
qpowjohn大大 那你兩台sever的proxy 都設HAProxy位址?其實不簡單說,尤其對我這個新手來說...!謝謝你的分享
作者: qpowjohn (pose)   2020-02-20 18:49:00
兩台vm的gateway都是指到haproxy
作者: domototice (tice)   2020-02-21 04:34:00
那...可以請教問題出在哪嗎= =+ 對不起...!https://reurl.cc/31d5Vj是這樣子沒錯嘛??對不起,gateway跟proxy的設定用途我有點忘記了= =+gateway不是路由器的端點嗎?也是出口?跟proxy要分開設定嗎?

Links booklink

Contact Us: admin [ a t ] ucptt.com