原文链接:http://www.javaarch.net/jiagoushi/626.htm
java web应用在执行一段时间之后出现了这么个问题
java.net.SocketException: Too many open files at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384) at java.net.ServerSocket.implAccept(ServerSocket.java:453) at java.net.ServerSocket.accept(ServerSocket.java:421) at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60) at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:216)
用ulimit -a看看linux打开文件限制
[admin@test ~]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 360448 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 360448 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
用lsof -p [进程ID] 可以看到某ID的打开文件状况。进程ID可能用 ps -ef|grep java列出
[admin@test ~]# lsof -p 1940 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME java 1940 admin cwd DIR 0,68 4096 385090717 /admin/apache-tomcat-7.0.39/bin java 1940 admin rtd DIR 0,68 4096 384141801 / java 1940 admin txt REG 0,68 47308 385122308 /admin/jdk1.6.0_13/jre/bin/java java 1940 admin mem REG 202,3 385122339 /admin/jdk1.6.0_13/jre/lib/i386/client/libjvm.so (path dev=0,68) java 1940 admin mem REG 202,3 385122308 /admin/jdk1.6.0_13/jre/bin/java (path dev=0,68) java 1940 admin mem REG 202,3 385122425 /admin/jdk1.6.0_13/jre/lib/i386/client/classes.jsa (path dev=0,68) java 1940 admin mem REG 202,3 385122426 /admin/jdk1.6.0_13/jre/lib/charsets.jar (path dev=0,68) java 1940 admin mem REG 202,3 384959153 /lib/libresolv-2.12.so (path dev=0,68) java 1940 admin mem REG 202,3 384959143 /lib/libnss_dns-2.12.so (path dev=0,68) java 1940 admin mem REG 202,3 385122355 /admin/jdk1.6.0_13/jre/lib/i386/libnio.so (path dev=0,68) java 1940 admin mem REG 202,3 385122354 /admin/jdk1.6.0_13/jre/lib/i386/libnet.so (path dev=0,68) java 1940 admin mem REG 202,3 385122325 /admin/jdk1.6.0_13/jre/lib/ext/sunjce_provider.jar (path dev=0,68) java 1940 admin mem REG 202,3 385122326 /admin/jdk1.6.0_13/jre/lib/ext/sunpkcs11.jar (path dev=0,68) java 1940 admin mem REG 202,3 385122392 /admin/jdk1.6.0_13/jre/lib/jce.jar (path dev=0,68) java 1940 admin mem REG 202,3 385122405 /admin/jdk1.6.0_13/jre/lib/resources.jar (path dev=0,68) java 1940 admin mem REG 202,3 385122391 /admin/jdk1.6.0_13/jre/lib/jsse.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090820 /admin/apache-tomcat-7.0.39/lib/tomcat-dbcp.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090824 /admin/apache-tomcat-7.0.39/lib/tomcat-jdbc.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090821 /admin/apache-tomcat-7.0.39/lib/tomcat-i18n-es.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090816 /admin/apache-tomcat-7.0.39/lib/jsp-api.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090817 /admin/apache-tomcat-7.0.39/lib/servlet-api.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090813 /admin/apache-tomcat-7.0.39/lib/el-api.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090811 /admin/apache-tomcat-7.0.39/lib/catalina.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090812 /admin/apache-tomcat-7.0.39/lib/ecj-4.2.1.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090819 /admin/apache-tomcat-7.0.39/lib/tomcat-coyote.jar (path dev=0,68) java 1940 admin mem REG 202,3 385122356 /admin/jdk1.6.0_13/jre/lib/i386/libmanagement.so (path dev=0,68) java 1940 admin mem REG 202,3 385122440 /admin/jdk1.6.0_13/jre/lib/rt.jar (path dev=0,68) java 1940 admin mem REG 202,3 384500332 /usr/lib/locale/locale-archive-rpm (path dev=0,68) java 1940 admin mem REG 202,3 385122427 /admin/jdk1.6.0_13/jre/lib/ext/localedata.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090825 /admin/apache-tomcat-7.0.39/lib/tomcat-util.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090807 /admin/apache-tomcat-7.0.39/lib/annotations-api.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090815 /admin/apache-tomcat-7.0.39/lib/jasper.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090818 /admin/apache-tomcat-7.0.39/lib/tomcat-api.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090809 /admin/apache-tomcat-7.0.39/lib/catalina-ha.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090814 /admin/apache-tomcat-7.0.39/lib/jasper-el.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090810 /admin/apache-tomcat-7.0.39/lib/catalina-tribes.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090823 /admin/apache-tomcat-7.0.39/lib/tomcat-i18n-ja.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090822 /admin/apache-tomcat-7.0.39/lib/tomcat-i18n-fr.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090808 /admin/apache-tomcat-7.0.39/lib/catalina-ant.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090794 /admin/apache-tomcat-7.0.39/bin/tomcat-juli.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090781 /admin/apache-tomcat-7.0.39/bin/commons-daemon.jar (path dev=0,68) java 1940 admin mem REG 202,3 385090776 /admin/apache-tomcat-7.0.39/bin/bootstrap.jar (path dev=0,68) java 1940 admin mem REG 202,3 385122350 /admin/jdk1.6.0_13/jre/lib/i386/libzip.so (path dev=0,68) java 1940 admin mem REG 202,3 385122346 /admin/jdk1.6.0_13/jre/lib/i386/libjava.so (path dev=0,68) java 1940 admin mem REG 202,3 384959101 /lib/libnss_files-2.12.so (path dev=0,68) java 1940 admin mem REG 202,3 385122345 /admin/jdk1.6.0_13/jre/lib/i386/libverify.so (path dev=0,68) java 1940 admin mem REG 202,3 384959147 /lib/libnsl-2.12.so (path dev=0,68) java 1940 admin mem REG 202,3 385222531 /tmp/hsperfdata_admin/1940 (path dev=0,68) java 1940 admin mem REG 202,3 384959158 /lib/librt-2.12.so (path dev=0,68) java 1940 admin mem REG 202,3 384959112 /lib/libm-2.12.so (path dev=0,68) java 1940 admin mem REG 202,3 384959123 /lib/libc-2.12.so (path dev=0,68) java 1940 admin mem REG 202,3 384958823 /lib/libdl-2.12.so (path dev=0,68) java 1940 admin mem REG 202,3 385122348 /admin/jdk1.6.0_13/jre/lib/i386/jli/libjli.so (path dev=0,68) java 1940 admin mem REG 202,3 384959167 /lib/libpthread-2.12.so (path dev=0,68) java 1940 admin mem REG 202,3 385122332 /admin/jdk1.6.0_13/jre/lib/i386/native_threads/libhpi.so (path dev=0,68) java 1940 admin mem REG 202,3 384959214 /lib/ld-2.12.so (path dev=0,68) java 1940 admin 0r CHR 1,3 384926820 /dev/null java 1940 admin 1w REG 0,68 26134081 385090804 /admin/apache-tomcat-7.0.39/logs/catalina.out java 1940 admin 2w REG 0,68 26134081 385090804 /admin/apache-tomcat-7.0.39/logs/catalina.out java 1940 admin 3r REG 0,68 28615 385090776 /admin/apache-tomcat-7.0.39/bin/bootstrap.jar java 1940 admin 4r CHR 1,8 384926869 /dev/random java 1940 admin 5r CHR 1,9 384926888 /dev/urandom java 1940 admin 6r REG 0,68 24281 385090781 /admin/apache-tomcat-7.0.39/bin/commons-daemon.jar java 1940 admin 7r REG 0,68 38161 385090794 /admin/apache-tomcat-7.0.39/bin/tomcat-juli.jar java 1940 admin 8r REG 0,68 51139867 385122440 /admin/jdk1.6.0_13/jre/lib/rt.jar java 1940 admin 9w REG 0,68 23357 385090941 /admin/apache-tomcat-7.0.39/logs/catalina.2013-05-29.log java 1940 admin 10w REG 0,68 6736 385090942 /admin/apache-tomcat-7.0.39/logs/localhost.2013-05-29.log java 1940 admin 11w REG 0,68 0 385090943 /admin/apache-tomcat-7.0.39/logs/manager.2013-05-29.log java 1940 admin 12w REG 0,68 0 385090944 /admin/apache-tomcat-7.0.39/logs/host-manager.2013-05-29.log java 1940 admin 13r REG 0,68 54176 385090808 /admin/apache-tomcat-7.0.39/lib/catalina-ant.jar java 1940 admin 14r REG 0,68 48693 385090822 /admin/apache-tomcat-7.0.39/lib/tomcat-i18n-fr.jar java 1940 admin 15r REG 0,68 51678 385090823 /admin/apache-tomcat-7.0.39/lib/tomcat-i18n-ja.jar java 1940 admin 34r REG 0,68 618621 385122391 /admin/jdk1.6.0_13/jre/lib/jsse.jar java 1940 admin 35r REG 0,68 88256 385122392 /admin/jdk1.6.0_13/jre/lib/jce.jar java 1940 admin 36r REG 0,68 226069 385122326 /admin/jdk1.6.0_13/jre/lib/ext/sunpkcs11.jar java 1940 admin 37r REG 0,68 170239 385122325 /admin/jdk1.6.0_13/jre/lib/ext/sunjce_provider.jar java 1940 admin 38u IPv6 221130420 TCP *:http (LISTEN) java 1940 admin 39u sock 0,5 221130418 can't identify protocol java 1940 admin 40u IPv6 221130421 TCP *:8009 (LISTEN) java 1940 admin 41w REG 0,68 15006 385090940 /admin/apache-tomcat-7.0.39/logs/localhost_access_log.2013-05-29.txt java 1940 admin 42u IPv6 221137418 TCP localhost.localdomain:41285->localhost.localdomain:mysql (ESTABLISHED) java 1940 admin 44u IPv6 221132667 TCP localhost.localdomain:mxi (LISTEN) java 1940 admin 46r REG 0,68 311856 384278348 (deleted) /admin/data/_2pb.tis java 1940 admin 47r REG 0,68 148741 384278362 (deleted) /admin/data/_2pb.frq java 1940 admin 48r REG 0,68 311842 384277396 (deleted) /admin/data/_2pc.tis java 1940 admin 87w REG 0,68 4355 388497409 /logs/run.log java 1940 admin 110r CHR 1,8 384926869 /dev/random java 1940 admin 111r REG 0,68 311856 384278348 (deleted) /admin/data/_2pb.tis java 1940 admin 112u unix 0xffff88045ea3b9c0 221132407 socket
ulimit -n 4096 临时把打开文件数的上限设为了4096
如果要永久生效,可以通过下面的方式设置。
修改/etc/security/limits.conf 添加如下一行:
* - nofile 1006154
修改/etc/pam.d/login添加如下一行
session required /lib/security/pam_limits.so
相关推荐
JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法 JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES错误是一种常见的网络编程错误,发生在Java应用程序中, especialmente 在 Linux 操作系统中。该错误的出现是...
Linux下运行tomcat或者was出现java.net.SocketException: 打开的文件过多错误 tomcat报“too many open files”的错误,解决办法如下:
在将Web服务器从Windows环境迁移到Linux环境后,遇到了一个常见的问题:“java.net.SocketException: Too many open files”。这种异常通常发生在高并发环境下,例如网站访问量显著增加时。在Windows环境中长时间...
单项海洋环境影响评价等级表.docx
【作品名称】:基于AT89C51 单片机为核心器件,程序设计采用C 语言,Keil 软件编译程序,配以相关外围接口电路,实现了方波、锯齿波、正弦波、三角波、梯形波五种特定波形的产生【论文+源码】 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:本设计中的波形发生器系统要求基于51单片机,因此选用以AT89C51单片机作为整个系统的控制核心,应用其强大的接口功能,构成整个波形发生器的硬件系统。使用C 语言对单片机编程可产生相应的正弦波,方波,三角波,锯齿波梯形波波形信号。在程序运行时,当接收到按键信息后,需要输出某种波形时,调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出即可得到要求的波形。 当需要改变频率时只需要改变单片机的波形发生程序中的递增或者递减变量即可。 【资源声明】:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。需要有一定的基础看懂代码,自行调试代码并解决报错,能自行添加功能修改代码。
数学建模培训资料 数学建模实战题目真题答案解析解题过程&论文报告 完全多元图的最大匹配问题研究 共9页.pdf
本项目是基于Python Web的社区爱心养老管理系统,旨在为社区养老提供一个全面、高效的管理平台。系统集成了用户管理、老人信息管理、健康管理、活动管理、服务管理等多项功能,通过简洁明了的界面,让管理人员能够轻松地进行各项操作,从而更好地服务于社区老人。 在架构上,系统采用B/S模式,前端使用HTML、CSS、JavaScript等技术,搭配Vue.js框架,实现了用户友好的交互界面;后端则基于Python的Django框架,提供了稳定且高效的服务端逻辑处理能力。数据库选用MySQL,确保了数据的存储安全和高效访问。 开发此项目的目的,不仅是为了满足计算机相关专业学生的毕设需求,提供一个实战练习的平台,更是希望通过实际项目的开发,培养学生的专业技能和实践能力,同时,也希望能为社区养老服务贡献一份力量,通过科技手段,让老年人的生活更加美好、便捷。
教学版单体spring-petlinic,课程《Kubernetes微服务实践》
内容概要:本文介绍了16世纪法国外交家Blaise de Vigenère提出的一种多表密码算法,详细解释了Vigenère密码的加密解密机制及其历史应用背景。特别提到了当明文M的长度超过密钥K的情况下,密钥会被重复使用的技巧。 适合人群:对古典密码学感兴趣的初学者,以及希望深入理解密码编码基本原理的学习者。 使用场景及目标:了解Vigenère密码的工作原理,掌握简单的加解密技术,增强信息安全意识。能够自行实施加解密操作,理解经典密码学的基本概念和技术。 其他说明:本文不仅提供了理论讲解,还给出了具体的例子帮助理解和实操练习。
STM32-EMBPI : Embedded Pi, triple-play platform for STM32, Raspberry Pi and Arduino
内容概要:本文主要探讨了电子电气架构中的网络管理策略,尤其是针对汽车中多个ECU(Electronic Control Unit)的协同管理和低功耗设计。通过引入网络管理状态机的概念,详细介绍了各状态(如常规运行状态、重复报文状态、准备睡眠模式、预睡眠模式、深度睡眠模式等)的具体运作机制及其在汽车电子系统中的重要性。文中还讨论了网络管理报文的设计与传输规则,特别是控制位向量CBV的定义,强调了网络管理在节能降耗方面的关键作用。 适用人群:具备一定汽车电子工程背景的专业人士或研究者,尤其对网络管理及低功耗设计感兴趣的工程师。 使用场景及目标:适用于汽车设计与制造企业的研发部门,帮助其优化电子控制系统,提升产品能效比,降低维护成本,提高用户体验。通过对网络管理策略的理解与应用,达到降低车载电子系统功耗的目的,进而延长电动车的续航能力和降低传统燃油车的油耗。 其他说明:文章不仅提供了理论上的阐述,还包括了具体的操作指南和技术细节,有助于从业者深入理解和实施网络管理方案。同时提醒在现代信息化社会中保持屏蔽力的重要性,鼓励读者专注于自己的发展目标,避免无效的精力分散。
英飞凌TC3XX_MCAL培训PPT
缴费综合服务系-JAVA-基于springBoot高校网上缴费综合服务系统设计与实现
Python与机器学习方向,《TensorFlow基础教程》课程仓库
【资源说明】 本科毕业设计 基于Python+Django教学资源管理系统网站详细文档+全部资料.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
内容概要:文章详细讨论了汽车行业正经历的重大变革,尤其是电动汽车(EV)和软件定义汽车(SDV)对行业的深远影响。随着技术的进步,汽车的差异化优势不再仅限于机械硬件,而是越来越多地取决于软件和服务。这一转型要求汽车制造商重新评估现有的解决方案堆栈,加大在电气化和连接性等领域的投资,以实现车型的电气化并支持可扩展性和全生命周期更新。同时,汽车的开发重点已经从机电领域转向了芯片和软件领域,强调基于云计算的协作开发方法。 适合人群:汽车行业专业人士、汽车电子工程师、技术研发人员及政策制定者。 使用场景及目标:帮助读者理解和把握汽车行业数字化转型的趋势,指导他们在电动汽车和软件定义汽车领域做出正确的技术投资和战略调整。 其他说明:本文不仅讨论了技术变革,还深入剖析了由此带来的商业和运营模式的变化,为汽车行业的未来发展方向提供了洞见。
微信课堂助手 微信小程序+PHP毕业设计 源码+数据库+论文+启动教程
新设博士后科研工作站备案申请表.xlsx
的玩具 Python 实现手套蟒蛇GloVe的玩具 Python 实现。Glove 产生单词的密集向量嵌入,其中一起出现的单词在生成的向量空间中靠得很近。虽然这会产生与word2vec (在gensim中有一个很棒的 python 实现)类似的嵌入,但方法不同GloVe 通过对语料库词共现矩阵的对数进行分解来产生嵌入。代码采用异步随机梯度下降,用Cython实现,很可能存在大量bug。安装使用 pip 从 pypi 安装pip install glove_python。OSX 用户请注意由于使用 OpenMP,glove-python 无法在 Clang 下编译。要安装它,您需要一个较新的版本gcc(例如来自 Homebrew)。应该由 接收setup.py如果没有,请打开一个问题。使用 OSX 中包含的默认 Python 发行版进行构建也不受支持请尝试 Homebrew 或 Anaconda 中的版本。用法生成嵌入分为两个步骤从语料库中创建共现矩阵,然后使用它生成嵌入。该类Corpus有助于从可交互的标记构建语料库该类Glove训练嵌入(使
消息中间件rabbitmq学习的一些代码、笔记