引用: http://hi.baidu.com/worldpasser/blog/item/2ed12283cfec2eaf0df4d234.html
1、环境说明
Linux下tomcat运行期
2、增加jvm 内存的配置
#vi catalina.sh
插入如下:
JAVA_OPTS='-Xms256m -Xmx512m'
3、INFO: Maximum number of threads (200) created for connector with address null and port 11222
说明:最大线程数错误
解决方案:
使用线程池,用较少的线程处理较多的访问,可以提高tomcat处理请求的能力。使用方式:
首先。打开/conf/server.xml,增加
- < 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"
- ...... />
4、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.