tomcat 大并发报错 Maximum number of threads (200) created for connector with address null and port 8080 .

本文提供了解决Tomcat并发请求时出现的线程池配置及文件句柄数量过高的方法,包括调整线程池大小、优化连接器配置、提升文件句柄上限,以确保服务器稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、INFO: Maximum number of threads (200) created for connector with address null and port 8091

说明:最大线程数错误

解决方案:

使用线程池,用较少的线程处理较多的访问,可以提高tomcat处理请求的能力。使用方式:

首先。打开/conf/server.xml,增加

 

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"      

  maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />    

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"    
        maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />  


最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60秒。

然后,修改<Connector >节点,增加executor属性,如:

<Connector executor="tomcatThreadPool"      

       port="80" protocol="HTTP/1.1"      connectionTimeout="60000"    keepAliveTimeout="15000"    maxKeepAliveRequests="1"    redirectPort="443"    />    

<Connector executor="tomcatThreadPool"    
               port="80" protocol="HTTP/1.1"    
               connectionTimeout="60000"  
               keepAliveTimeout="15000"  
               maxKeepAliveRequests="1"  
               redirectPort="443"  
               />  


2、java.net.SocketException: Too many open files

当tomcat并发用户量大的时候,单个jvm进程确实可能打开过多的文件句柄。

使用 #lsof -p 10001|wc -l   查看文件操作数

如下操作:

     (1)ps -ef |grep tomcat  查看tomcat的进程ID,记录ID号,假设进程ID为10001     

     (2) lsof -p 10001|wc -l    查看当前进程id为10001的 文件操作数     

     (3)使用命令:ulimit -a   查看每个用户允许打开的最大文件数       默认是1024.     

     (4)然后执行:ulimit -n 65536 将允许的最大文件数调整为65536    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值