最近的專案開始正式running 發生了 因為Port被卡死 導致系統崩潰

這個專案的架構為

Server : Tomcat Java

Clinet : Flash

網路協定用Socket

因為Flash 使用Socket協定 需要認證843 Port

卻因為人數過多 使得843 Port 無法連線

Server 的Log 卻沒有任何的錯誤訊息

 

監控了很久 發現因為 作業系統 許多資源呈現Close_Wait狀態 導致系統崩潰

因為Linux 系統建立時 默認時間為7200秒 也就是兩小時

所以當許多使用者登入時, 等不到資源釋放就使系統崩潰了 使Port無法連接 

 

只好開始著手更改設定

更改 /proc/sys/fs/file-max , 管理檔案開啟數量限制的檔案  由sysctl.conf控制 將值改成8192 或更大的數字

要確定是否生效 可以下ulimit -a 看是否已生效

 

更改linux自動管理 自動關閉socket連線 與管理

暫時改法:

 

sysctl -w net.ipv4.tcp_keepalive_time = 600

sysctl -w net.ipv4.tcp_keepalive_probes = 2

sysctl -w net.ipv4.tcp_keepalive_intvl = 2

 

如需永久生效  需要更改 /etc/sysctl.conf 重新啟動網路

/etc/rc.d/init.d/network restart

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 foanwang 的頭像
    foanwang

    Foan的程式&城市札記

    foanwang 發表在 痞客邦 留言(0) 人氣()