java.net.SocketException: Too many open files错误,一直很头疼,困扰了我很久,今天google了一下,看到了很多种解释,后来才知道linux对进程的打开文件数是有限制的。lsof -p 12349 查看链接数,12349是tomcat的进程
lsof -P 12349|wc -l
ulimit -u 查看open files设置
ulimit -a 查看所有设置
ulimit -u 65535(新的open files 值)修改设置
ulimit -n 65536 设置用户可以同时打开的最大文件数(max open files)  如果本参数设置过小,对于并发访问量大的网站,可能会出现too many open files的错误
使用lsof -p pid [httpd进程的 pid、java的pid]来查看系统中apache进程和java运行时进程当前打开的文件资源,发现两者之和已经接近1024,大于了默认的设置。  修改配置:  修改/etc/security/limits.conf,在文件末加上
* soft nofile 65536
* hard nofile 65536  系统级文件描述符极限还可以通过将以下三行添加到 /etc/rc.d/rc.local 启动脚本中来设置:
# Increase system-wide file descriptor limit.
echo 65536 > /proc/sys/fs/file-max
echo 65536 > /proc/sys/fs/inode-max
用命令ulimit -a查看
[root@test security]# ulimit -a
core file size        (blocks, -c) 0
data seg size         (kbytes, -d) unlimited
file size             (blocks, -f) unlimited
max locked memory     (kbytes, -l) unlimited
max memory size       (kbytes, -m) unlimited
open files                    (-n) 1024
pipe size          (512 bytes, -p) 8
stack size            (kbytes, -s) 8192
cpu time             (seconds, -t) unlimited
max user processes            (-u) 7168
virtual memory        (kbytes, -v) unlimited
[root@test security]#
通过以上命令,我们可以看到open files 的最大数为1024对于并发量比较大的网站这个限制是有些捉襟见肘的,所以我通过这个命令ulimit -n 4096
把打开文件数的上限设为了4096,这下好了,项目又稳定了没想到过两天后又重新出这个错误了,郁闷,两个小时报一次,报之后就挂掉了在重新用ulimit -a查看,发现open files    (-n) 1024 又变回了1024了,报这个错误就在我那次登陆更新之后又报的,原来ulimit -n 4096 命令只能临时的改变open files  的值,当重新登陆后又会恢复,所以需要永久设置open files  的值才行啊,用ulimit -n 修改open files 总是不能保持。所以用下面一个简单的办法更好些。修改/etc/security/limits.conf 添加如下一行:* - nofile 1006154修改/etc/pam.d/login添加如下一行session required /lib/security/pam_limits.so这次永久修改后程序就再没那个问题了,一直稳定运行。另外遇到这个问题这后还需要检查我们的程序对于操作io的流是否在操作完之后关闭,这才是从最更本上的解决。

java.net.SocketException: Too many open files解决方法相关推荐

  1. JAVA.NET.SOCKETEXCEPTION: TOO MANY OPEN FILES

    为什么80%的码农都做不了架构师?>>>    最近随着网站访问量的提高把web服务器移到linux下了,在移服务器的第二天,tomcat频繁的报 java.net.SocketEx ...

  2. Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法

    Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法 下载网络上的Adobe flash cs5 精简版(绿色版),Java运行时环境初始化时出现错误,你可能需要重装Flash ...

  3. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 解决方法 java.lang.ClassNotFoundException: com.

    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 解决方法 java.lang.ClassNotFoundException: com.m ...

  4. java开发中遇到的问题及解决方法(持续更新)

    java开发中遇到的问题及解决方法(持续更新) 参考文章: (1)java开发中遇到的问题及解决方法(持续更新) (2)https://www.cnblogs.com/LiuYanYGZ/p/6112 ...

  5. Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法

    Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法 参考文章: (1)An ...

  6. Idea运行web项目时,提示java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方法

    Idea运行web项目时,提示java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方法 参考文章: (1)Idea运行web项目时,提示j ...

  7. java.net.BindException: Address already in use: 解决方法

    java.net.BindException: Address already in use: 解决方法 参考文章: (1)java.net.BindException: Address alread ...

  8. Project facet Java version 1.7 is not supported.解决方法

    Project facet Java version 1.7 is not supported.解决方法 参考文章: (1)Project facet Java version 1.7 is not ...

  9. java.net.NoRouteToHostException: No route to host解决方法

    java.net.NoRouteToHostException: No route to host解决方法 参考文章: (1)java.net.NoRouteToHostException: No r ...

最新文章

  1. 【总结整理】数据可视化
  2. Linux下使用ls查看文件颜色全部为白色的解决方法,以及Linux中文件颜色介绍
  3. 【Android 高性能音频】AAudio 状态机 ( 创建 | 打开 Open | 开始 Started | 暂停 Paused | 刷写 Flushed | 停止 Stopped | 关闭 )
  4. 基础JavaScript_Day02
  5. python怎么由列表生成m*n的矩阵_Python进阶系列:Python遍历的秘密
  6. 博弈入门(思想)HDkiki‘s game;
  7. 文档模式引起的浏览器兼容问题
  8. css --- 行内框和内容区
  9. decode 大于比较 小于_6 燃气输配系统6.3 压力不大于1.6Mpa的室外燃气管道城镇燃气设计规范 GB500282006(2020修订版)...
  10. 【技术思路】极客时间-左耳听风-程序员攻略开篇
  11. linux c 创建新线程,Linux C Phread 入门1---线程创建
  12. Apache Ant包进行ZIP文件压缩
  13. LOADRUNNER居于HTTP协议函数使用
  14. 手机修改ntp服务器地址,手机修改ntp服务器ip地址
  15. 编码:decode()/encode()、quote()/unquote()
  16. 杭州电子科技大学计算机非全日制,杭州电子科技大学非全日制研究生考试难吗?...
  17. 基于单片机的打地鼠游戏仿真设计(#0040)
  18. 【收藏】5个免费的插画网站,绝对的宝藏资源
  19. 微信小程序最新获取头像和昵称的方法 直接用!
  20. c++ 箭头符号怎么打_c++笔记--重载箭头运算符

热门文章

  1. 统计推断(二) Estimation Problem
  2. can收发器 rx_USB-CAN收发器
  3. Tsi721和NRS1800连接调试问题记录
  4. LeetCode算法题-镜面反射(Mirror Reflection)
  5. Android 备份(提取)apk
  6. 自制随机小姐姐摄影api
  7. easyexcel实现导出
  8. 游轮帆船租赁旅游响应式模板
  9. win10系统设置webp文件默认用照片查看器打开的两种方法
  10. 微信内测朋友圈内容转发功能;快手前副总裁侵占756万余元,一审获刑7年;​俄罗斯法院驳回苹果上诉,将继续进行反垄断调查|极客头条