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

看板MIS作者 (pose)時間4年前 (2020/02/15 21:33), 4年前編輯推噓10(10077)
留言87則, 8人參與, 4年前最新討論串1/1
[硬體資訊] 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) 以上,感謝各位觀看 已經找不到方法了才上來討教 感謝各位先進的協助,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.148.79 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/MIS/M.1581773603.A.184.html ※ 編輯: qpowjohn (36.231.148.79 臺灣), 02/15/2020 21:35:11

02/15 22:16, 4年前 , 1F
你只看log ,實際做了什麼 TS ?
02/15 22:16, 1F

02/15 22:17, 4年前 , 2F
telnet 有 504 的 80 port?
02/15 22:17, 2F

02/15 22:48, 4年前 , 3F
看來是壓力測試API運作haproxy環境遇到問題上來問
02/15 22:48, 3F

02/15 22:49, 4年前 , 4F
先是看到Port用盡,所以做了註冊表和config調整
02/15 22:49, 4F

02/15 22:50, 4年前 , 5F
改了之後確實沒有了,但是卻會不定時從HAProxy看到問題
02/15 22:50, 5F

02/15 22:51, 4年前 , 6F
然後RDP進不去,從hypervisior也進不去(已關加強模式)
02/15 22:51, 6F

02/15 22:51, 4年前 , 7F
只能從hypervisior強制關閉重開VM..
02/15 22:51, 7F

02/15 22:53, 4年前 , 8F
正常的回應速度大概都是100ms以內,超過30000ms很不正常
02/15 22:53, 8F

02/15 22:54, 4年前 , 9F
而且已經排除AppPool回收的階段
02/15 22:54, 9F

02/15 22:54, 4年前 , 10F
站台本身每分鐘都在打,所以也排除超時未使用被回收
02/15 22:54, 10F

02/15 22:55, 4年前 , 11F
以上回答算是測試嗎...?
02/15 22:55, 11F

02/15 22:56, 4年前 , 12F
沒記錯的話 那log是這樣看,事件504返回長度194
02/15 22:56, 12F

02/15 22:56, 4年前 , 13F
telnet這段沒做過,因為都是不定時卡住,抓不準時間
02/15 22:56, 13F

02/15 22:59, 4年前 , 14F
apppool 進階設定預設值 好像不適合高量頻繁
02/15 22:59, 14F

02/15 23:00, 4年前 , 15F
HAProxy應該是沒有問題的,提出圖片只是證明說MS卡住
02/15 23:00, 15F

02/15 23:00, 4年前 , 16F
哦,求解,我們的服務確實是每天會被打百萬次...
02/15 23:00, 16F

02/15 23:02, 4年前 , 17F
如果是加VM上去做LB的方式也是可行,只是我感覺不是這
02/15 23:02, 17F

02/15 23:03, 4年前 , 18F
層面的問題...覺得好像是系統哪邊沒設定好
02/15 23:03, 18F

02/16 00:52, 4年前 , 19F
你POST什麼資料?
02/16 00:52, 19F

02/16 00:52, 4年前 , 20F
有DB嗎?
02/16 00:52, 20F

02/16 02:14, 4年前 , 21F
你給的資料玩全無法除錯,只知道504,504誰造成的不知
02/16 02:14, 21F
目前能推斷是VM的問題,因為另一個VM正常接受request,代表HAProxy沒問題,我們的比重 是設定1:1,給的圖僅將504取出,所以HAProxy這端是無異常的

02/16 02:15, 4年前 , 22F
如果你不敢透漏太多就自己請寫程式的RD或廠商來處理
02/16 02:15, 22F

02/16 02:17, 4年前 , 23F
機器預設可以開5000port是沒有問題的,問題是程式壞了
02/16 02:17, 23F

02/16 02:18, 4年前 , 24F
導致5000port被request塞爆,如果有保密問題就花錢吧
02/16 02:18, 24F
5000port按照網頁的說法不是已經擴大到65534了嗎?

02/16 03:32, 4年前 , 25F
server配置資訊不夠怎麼判斷
02/16 03:32, 25F

02/16 04:28, 4年前 , 26F
不忍噓
02/16 04:28, 26F

02/16 08:27, 4年前 , 27F
這問題有時侯不是只有一面要看 但是不會用這麼少的線
02/16 08:27, 27F

02/16 08:27, 4年前 , 28F
索來找
02/16 08:27, 28F

02/16 09:25, 4年前 , 29F
不好意思,讓各位有點隔空抓藥的感覺,因為抓不準系統
02/16 09:25, 29F

02/16 09:25, 4年前 , 30F
卡住的時間,然後正常的時候進去看netstat也沒啥問題(
02/16 09:25, 30F

02/16 09:25, 4年前 , 31F
大概300-400左右的連線),其實給的圖都是一樣的資訊,
02/16 09:25, 31F

02/16 09:25, 4年前 , 32F
只能證明說那個時間點request打進去完全無法回應。
02/16 09:25, 32F

02/16 09:27, 4年前 , 33F
server配置,是指型號嗎?HP DL460c G8
02/16 09:27, 33F
※ 編輯: qpowjohn (49.216.40.155 臺灣), 02/16/2020 09:38:10

02/16 23:23, 4年前 , 34F
我會查web handler是不是用到不該用的,而造成排隊
02/16 23:23, 34F

02/17 04:17, 4年前 , 35F
既然是VM的問題,那應該是請寫AP的RD或廠商來處理
02/17 04:17, 35F

02/17 04:18, 4年前 , 36F
你不給AP是什麼,就要大家隔空抓藥,也是了不起
02/17 04:18, 36F

02/17 04:23, 4年前 , 37F
req超過30s通常是資源鎖定或程式壞了等timeout
02/17 04:23, 37F
感謝您的幫助,目前的狀況在UAT環境驗不出來,上正式機才出現,UAT和PROD的差異僅僅是 AppPool數量級的差異(2 vs 100),所以我才在想是哪邊沒有設定好,又或者是要分散資 源,多建立一套VM來承載過多的網站。 另外請教各位,我們MIS的工作僅僅是將OS以前的工作搞定嗎?之後出問題都是站台的問題 不干我的事? 上面協助回答的各位先進都傾向直接找RD解決,可是如果連RD都測不出來,難道直接花點數 找微軟? ※ 編輯: qpowjohn (101.11.0.7 臺灣), 02/17/2020 08:33:31

02/17 10:27, 4年前 , 38F
如果你當過RD或是DevOp,沒有CD/CI,這種事情根本是日常
02/17 10:27, 38F

02/17 10:28, 4年前 , 39F
很多RD開發環境都很亂,然後issue丟來都說我跑沒問題
02/17 10:28, 39F

02/17 10:29, 4年前 , 40F
然後MIS只能吃悶虧,抓出問題還好,沒抓到就是每天狗幹
02/17 10:29, 40F

02/17 10:31, 4年前 , 41F
最可憐的是user,因為系統有問題每天哎哎哎,加班做不完
02/17 10:31, 41F

02/17 10:33, 4年前 , 42F
所以要先保留現場,確認網路硬體作業系統都正常
02/17 10:33, 42F

02/17 10:34, 4年前 , 43F
最好兩台VM在同一台主機內,把問題縮限在VM內,然後再叫
02/17 10:34, 43F

02/17 10:34, 4年前 , 44F
RD或廠商來解決問題
02/17 10:34, 44F

02/17 10:37, 4年前 , 45F
這問題我猜是程式的並行寫得不好,造成DB lock,然後大家
02/17 10:37, 45F

02/17 10:38, 4年前 , 46F
就在等那個lock解鎖,所以就拼命timeout,這也是日常
02/17 10:38, 46F

02/17 10:39, 4年前 , 47F
你可以試試看先不要用haproxy,把req都塞到一台去跑
02/17 10:39, 47F

02/17 10:40, 4年前 , 48F
隔一段時間沒問題再換另一台,我猜應該是都沒有問題
02/17 10:40, 48F

02/17 10:41, 4年前 , 49F
確認問題出在並行,再把問題交給RD或廠商處理
02/17 10:41, 49F

02/17 10:45, 4年前 , 50F
有些driver如果連線沒有正常關閉,DB lock是永不釋放的
02/17 10:45, 50F

02/17 10:46, 4年前 , 51F
RD只在哪邊跑個幾次,沒有壓測,根本測不出問題的
02/17 10:46, 51F

02/17 12:56, 4年前 , 52F
有些RD只懂RD,有時我是問他的程式工作內容,對方願意
02/17 12:56, 52F

02/17 12:56, 4年前 , 53F
就一起解問題
02/17 12:56, 53F

02/17 13:01, 4年前 , 54F
你說不定時卡住,你可以想辦法追蹤各種數據多收集一
02/17 13:01, 54F

02/17 13:01, 4年前 , 55F
點線索,有時候掛掉前的資料也是破案關鍵
02/17 13:01, 55F
太感謝以上先進了,提供另一個思維,我會按照以上方式進行單機測試,確認問題是出在哪 一端 ※ 編輯: qpowjohn (101.11.0.7 臺灣), 02/17/2020 18:49:07

02/19 14:24, 4年前 , 56F
proxy 30秒無回應 通常會是什麼造成? 太多要求?
02/19 14:24, 56F

02/19 14:24, 4年前 , 57F
有proxy伺服器嗎?
02/19 14:24, 57F

02/19 14:30, 4年前 , 58F
會是proxy負載過重嗎? 對不起 我的功力不足。。。。
02/19 14:30, 58F

02/19 14:36, 4年前 , 59F
proxytSR port用盡 如何處理呢? VM可接受的連接數?
02/19 14:36, 59F

02/19 14:45, 4年前 , 60F
port用盡 可以修改port使用數再度使用新增的port嗎?
02/19 14:45, 60F

02/19 14:45, 4年前 , 61F
求解答謝謝...!
02/19 14:45, 61F

02/19 14:46, 4年前 , 62F
proxy伺服器 可以再多一台嗎? 兩台下去配置???
02/19 14:46, 62F

02/19 14:52, 4年前 , 63F
你給的資訊是 server2003的port處理方式說。。。。
02/19 14:52, 63F

02/19 14:53, 4年前 , 64F
而且 server2012 怎麼可以說是硬體呢? 是運行環境說
02/19 14:53, 64F

02/19 14:57, 4年前 , 65F
可以請教你的HAproxy 怎麼跟WINSR DFS怎麼做結合嗎?
02/19 14:57, 65F

02/19 15:01, 4年前 , 66F
IIS8.5的最大連接數呢? 方便請教嗎? qpowjohn大大
02/19 15:01, 66F

02/19 15:05, 4年前 , 67F
可以再請教HAproxy可以在winserver2012上運行嗎?
02/19 15:05, 67F

02/19 15:08, 4年前 , 68F

02/19 15:11, 4年前 , 69F
HAProxy可在WIN上運行 那它的最大連接數呢?
02/19 15:11, 69F

02/19 15:18, 4年前 , 70F

02/19 15:24, 4年前 , 71F
所以問題不是在於HAProxy 就是在於兩個VM配置問題囉?
02/19 15:24, 71F

02/19 15:26, 4年前 , 72F
另一個VM能正常接受HAProxy的連入嗎?
02/19 15:26, 72F

02/19 15:28, 4年前 , 73F
HAProxy有釋放資源嗎? 還是阻擋連入數 你只設30秒外丟
02/19 15:28, 73F

02/19 15:28, 4年前 , 74F
回應回去
02/19 15:28, 74F

02/19 15:45, 4年前 , 75F
求最後的解答哦~感謝大大....!
02/19 15:45, 75F

02/19 17:14, 4年前 , 76F
haproxy用linux架,504是server經過30秒無回應就拋給cl
02/19 17:14, 76F

02/19 17:14, 4年前 , 77F
ient,發生狀況的當下是一台server正常另一台無回應,
02/19 17:14, 77F

02/19 17:14, 4年前 , 78F
其實就是個很普通的做法
02/19 17:14, 78F

02/19 21:23, 4年前 , 79F
qpowjohn大大 那你兩台sever的proxy 都設HAProxy位址?
02/19 21:23, 79F

02/19 21:23, 4年前 , 80F
其實不簡單說,尤其對我這個新手來說...!謝謝你的分享
02/19 21:23, 80F

02/20 18:49, 4年前 , 81F
兩台vm的gateway都是指到haproxy
02/20 18:49, 81F

02/21 04:34, 4年前 , 82F
那...可以請教問題出在哪嗎= =+ 對不起...!
02/21 04:34, 82F

02/21 04:48, 4年前 , 83F
02/21 04:48, 83F

02/21 04:48, 4年前 , 84F
是這樣子沒錯嘛??
02/21 04:48, 84F

02/21 05:02, 4年前 , 85F
對不起,gateway跟proxy的設定用途我有點忘記了= =+
02/21 05:02, 85F

02/21 05:43, 4年前 , 86F
gateway不是路由器的端點嗎?也是出口?跟proxy要分開
02/21 05:43, 86F

02/21 05:43, 4年前 , 87F
設定嗎?
02/21 05:43, 87F
文章代碼(AID): #1UH_CZ64 (MIS)