今天下午剛從客戶坐車回來,晚上洗完澡,悶熱的天氣讓人睡不著覺,就和大家分享一下windows2003 server socket端口的默認5000的數量修改方式。
導致問題:從項目上線之后,客戶說一個月就會宕機一次,系統用戶無法正常登陸,后臺報異常,無法連接,而整個集團的并發數并沒有到一個很大的數量級,每次宕機,單純的重啟web服務器以及數據庫服務無法到達解決問題的辦法,必須要重啟電腦,因此思路就轉向了承載web服務器本身的服務器2003,每次都是按照socket來進行數據的讀取,而每Socket.close()是不馬上釋放連接的,而是設置為time_wait狀態,這個時間默認是240S,這個就是有點太長,可以設定為最小值,30s,而設定最小值之前必須要進行下面解決方式的第一步,而后進行第二步30s的設置,下面解決socket的問題,下面把解決方式貼出來。
解決方式:
第一步:啟動注冊表編輯器HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
第二步:新建
值名稱:MaxUserPort
值類型: DWORD
值數據: 65534(用十進制的方法寫進去就可以)
有效范圍: 5000 - 65534 (十進制)
默認: 0x1388 5000 (十進制)
第三步:新建
值名稱:TCPTimedWaitDelay
值類型: DWORD
值數據: 0000001e(也就是30,這個表示TIME_WAIT的秒數)
重啟電腦,問題解決
新聞熱點
疑難解答