第1章 问题描述
niEAP Report在运行的时候会创建并打开一定数量的实例缓存文件(默认的最大缓存数为1000),如果系统中同时运行的其他程序也打开一些文件,就有可能超出系统同时打开文件数的限制,此时就会出现“Too many open files”错误。这个错误有可能由UniEAP Report引起,也有可能由其他程序引起。
第2章 解决办法
2.1 调整操作系统设置
Linux操作系统在系统和用户两个级别对最大打开文件数进行了限制。
2.1.1 系统级设置
系统级设置对所有用户有效。可以通过两种方式查看系统最大文件数限制:
(1) cat /proc/sys/fs/file-max。
(2) sysctl –a,查看结果中fs.file-max项的值。
如果需要增加配置数量,就修改/etc/sysctl.conf文件,配置fs.file-max属性,如果该属性不存在则添加。
配置完成后要使用sysctl –p命令使配置生效。
2.1.2 用户级设置:
Linux限制每个登录用户的可连接文件数。可通过 ulimit -n来查看当前有效设置。如果想修改这个值就使用 ulimit -n
对于文件描述符增加的比例,资料推荐是以2的幂次为参考。如当前文件描述符数量是1024,可增加到2048,如果不够,可设置到4096,依此类推。
2.2 调整WebLogic设置
WebLogic中也有对于最大打开文件数的配置,如果是使用WebLogic部署服务,则还需要设置${SERVER_DIR}/common/bin/commEnv.sh文件中的值,如:ulimit –n 4096。${SERVER_DIR}为WebLogic的安装目录。