永夜海 发表于 2019-1-26 14:44:26

解决java.net.SocketException: Too many open files

  今天tomcat在跑任务时发现每次都有报错java.net.SocketException: Too many open files,
  通过查阅文档发现是当时做系统初始化操作时忘了设置ulimit值,以至于一直使用默认值1024。
  于是马上修改配置文件
echo"* soft nofile 200000">>/etc/security/limits.conf
echo"* hard nofile 200000" >>/etc/security/limits.conf
ulimit -SHn 200000         ## 对当前窗口生效,关闭后失效  但是再次跑任务时候发现报错依旧,于是各种查找,最后想到tomcat在修改ulimit后没有重启。重启后问题解决。
  

  查找相关文档发现以下原因:
  如果程序A已经运行,此时ulimit -n为1024;
  然后设置ulimit -n 2048,这时再运行程序B;
  退出当前shell用户,再次登录shell,运行程序C;
  这时只有B程序用的是2048,其它用的都是1024.
  

  参考文献:http://www.th7.cn/system/lin/201309/45075.shtml
  

  




页: [1]
查看完整版本: 解决java.net.SocketException: Too many open files