– 分析命令
-
ulimit -a 【可以查看当前系统设置的最大句柄数是多少,其中的open files那行就是代表系统目前允许单个进程打开的最大句柄数,一般没有设置默认为1024.】
-
ps -ef | grep java 【可以查看当前java应用程序进程对应的进程id.】
-
lsof -p 进程id 【查看单个进程打开的的文件详情】
-
lsof -p 进程id | wc -l 【统计进程打开了多少个文件,如果文件数过多,无法完全查看,则可以使用命令 lsof -p 进程id -> openfiles.log,将执行结果的内容输出到日志文件中查看】
– 系统级解决办法
- ulimit -n 句柄数 【设置增加允许打开的文件数,这种设置办法在系统重启后会还原默认值。并且非root用户只能设置到4096,要想设置更大,需要用sudo,或则root用户】
- vim /etc/security/limits.conf 【修改系统配置文件增加允许打开的文件数】
#在最后加入
- soft nofile 4096
- hard nofile 4096
最前的* ,表示所有用户,可根据需要设置某一用户,例如
roy soft nofile 8192
roy hard nofile 8192
java后端对图片处理的比较强大的处理工具: https://blog.youkuaiyun.com/FireAny2010/article/details/39670975 使用ImageMagick处理图片(对图片处理要求比较高的解决方案)