tomcat 報錯 Too many open files

問題描述:

當Tomcat單節點大批量訪問時,會出現:Too many open files 報錯導致系統卡死或者進程直接關閉,從而影響業務。

問題原因:

進程在請求打開一個文件,實際上就是在請求句柄,但是現在進程打開的句柄已經達到了上限,已經無法打開新句柄了,所以導致系統無法在接入新的連接,或者目前連接的請求也將出現問題!

處理方法:

● 增加文件描述符

      ulimit -n 65535
      echo 65532 > /proc/sys/fs/file-max

優化TCP/IP設置

   echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
   echo 60000 > /proc/sys/net/ipv4/tcp_keepalive_time
   echo 15000 > /proc/sys/net/ipv4/tcp_keepalive_intvl
   echo 0 > /proc/sys/net/ipv4/tcp_window_scaling

其他優化

#使用更多的本地端口
echo 1024 25000 > /proc/sys/net/ipv4/ip_local_port_range
#增加更多的socket buffer內存(參考)
echo 2621143 > /proc/sys/net/core/rmem_max
echo 262143 > /proc/sys/net/core/rmem_default
echo 4096 131072 262143 > /proc/sys/net/ipv4/tcp_rmem
echo 4096 13107262143 > /proc/sys/net/ipv4/tcp_wmem
#增加運行期所需的shm內存(參考)
echo 67108864 > /proc/sys/kernel/shmmax echo 16777216 > /proc/sys/net/core/rmem_max echo 16777216 >
/proc/sys/net/core/wmem_default echo 16777216 >
/proc/sys/net/core/wmem_max echo 4096 > /proc/sys/net/core/somaxconn
echo 262143 > /proc/sys/net/core/rmem_default
#增加用戶最大打開文件數(如果本身系統的數字就比這個要大就不用修改了)
#---------------修改/etc/security/limits.conf文件---------- soft nofile 32768
*hard nofile 32768
###重啓後用戶的最大打開文件數就變成 32768 了,當然你也可以看情況再加大。

總結:
實際情況需要根據機器的具體配置進行調整,不能直接生搬硬套,不然可能會適得其反!建議訪問量較大的應用盡量使用集羣方式部署!

發佈了35 篇原創文章 · 獲贊 45 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章