tomcat too many open files 问题
linux系统下每个进程都有文件打开限制
5752是tomcat的进程id
[root@alipayap01_test startserver]# cat /proc/5752/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 10485760 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 73728 73728 processes
Max open files 1024 1024 files
Max locked memory 32768 32768 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 73728 73728 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
查看tomcat进程已打开的文件数
lsof -p 5752|wc-l
当tomcat启动的时候文件打开数很大,因为需要加载lib中的jar包,当所有项目启动完毕后,tomcat会释放部分项目lib的jar文件,
当其中一个应用暂未被访问,现在进行访问,tomcat的文件数会进行增加,通过查询“lsof -p 5752|grep "WEB-INF/lib"|wc -l” 加载jar包数据,后续访问减少时就会进行释放。
当tomcat打开的本身的jar及文件数+应用的jar文件数大于 Max open files 就会出现 too many open files异常问题