在linux下跑一个多线程读取文件的程序,待读取文件有数十万个。程序读取过程中抛出如下异常*****(Too many open files)。
原因是由于linux限制了一次会话中,程序最大同时打开文件数目。在redhat5中,该数值为1024。可以使用ulimit -n 验证。
解决办法
1、临时修改该数值,可使用
ulimit -n XXXX
2、永久修改
2.1. 查看当前设置
ulimit -n
(默认是1024)
2.2. 查看系统可接受的最大打开文件数(一般默认已足够,不用修改)
# cat /proc/sys/fs/file-max
(默认可能是372998,已足够)
如果小于你期望的值,可以改大:
# echo 327998 > /proc/sys/fs/file-max
或者写入 /etc/sysctl.conf 中,以便重启也能生效:
fs.file-max = 327998
2.3. 修改/etc/security/limits.conf文件,设置用户最大打开文件数
#<domain> <type> <item> <value>
* - nofile 2048 (添加这一行)
这样即设置系统每个用户的最大打开文件数为2048。
注意 nofile 参数在 type 类型上有2个可能的选项:hard 和 soft ,这两个值都需要设置,“-”代表同时设置这2个值为后面的数字。
hard limit 只是作为 soft limit 的上限,soft limit 才是你设置的系统当前限制。当你设置 hard limit 后,你以后设置的 soft limit 的值就只能小于 hard limit 。普通用户可以降低 hard limit 的值,但是不能提高它,只有 root 用户才能提高 hard limit。
2.4. 退出shell登陆,重新登陆一次即生效(运行ulimit -n 检查)
已经启动的进程,可能需要关闭后重新启动才生效。
参考
http://chen.wenz.blog.163.com/blog/static/6774385420105994434152/
附件 来源网络整理
分享到:
相关推荐
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.ReportViewer.WinForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies....
主要介绍了文件路径正确,报java.io.FileNotFoundException异常的原因及解决办法的相关资料,需要的朋友可以参考下
java运行环境jdk1.8.0_131,windows下64位操作系统,添加环境变量JAVA_HOME:C:\Program Files\Java\jdk1.8.0_131 classpath:.,C:\Program Files\Java\jdk1.8.0_131jre\lib\rt.jar,C:\Program Files\Java\jdk1.8.0_131\...
支持windows开发hadoop的连接,解决报警Did not find winutils.exe: java.io.FileNotFoundException
启动eclipse 时出现错误警告
这个问题定位了大半天,先坐下记录。可能每个人遇到的问题情况不一样,我先说下我出现的问题解决方案:将mkdir() 改成mkdirs() ,至于为什么,后面介绍。 今天测试找我,说项目中测试录像直接crash了。...
Caused by: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. at org.apache.hadoop.util.Shell.checkHadoopHomeInner(Shell.java:468) at org.apache.hadoop.util.Shell....
import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java....
关键是本地服务器没有写入的权限 关键看这里吧(Permission denied), 一直没有看正方,以为是配置... java.io.FileNotFoundException: logs/bandwidth.log.2019-04-25.log (Permission denied) at java.io.FileNotFou
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Properties; /** * @...
前言 其实在网上有很多介绍下载文件或者解压zip文件的文章,但是两者结合的不多,所以这...import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.Inp
import java.io.FileNotFoundException; import java.io.IOException; public class FileServer { /** * @param args */ public static void main(String[] args) { // 读取本地文件 try { java.io....
import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.ArrayList; ...
websphere常见问题及解决办法 如 Error 404: SRVE0190E JSPG0049E
java解析通常有两种,这里讲其中一种java Excel,现在用的最多是poi
Hessian是一个由Caucho Technology开发的轻量级二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。 本例子使用spring 整合hessian使开发更加的容易。
无法 xml
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import org.apache.tools.zip.ZipEntry; ...
import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing....