`
yangzb
  • 浏览: 3506967 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在liunx下经常出现java.net.SocketException: Too many open files错误是什么原因

    博客分类:
  • Java
阅读更多

发布在Tomcat+linux服务器上的项目经常报”java.net.SocketException: Too many open files"的错误,根据错误分析如下 :

Linux 系统默认的open files的设置是1024

通过 ulimit -a进行查看。
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
pending signals                 (-i) 1024
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
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 16127
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
访问应用时,操作系统new Socket去连接文件,当连接数超过系统的设置时候,这时候就报了这类错误。
解决方法 :
1、设置Linux的允许的open files的个数,设置方法 ulimit -n 连接数
2、将classes目录下的class文件打包成jar的方式,减少new Socket的数量。

 

ulimit -n 4096
把打开文件数的上限设为了4096,这下好了,项目又稳定了,嘻嘻,正为这事高兴了,

 

没想到过两天后又重新出这个错误了,郁闷,两个小时报一次,报之后就挂掉了,什么原因了,

 

在重新用ulimit -a查看,这下傻了,发现open files      (-n) 1024 又变回了1024了,想到原因了,

 

报这个错误就在我那次登陆更新之后又报的,原来ulimit -n 4096 命令只能临时的改变open files    的值,当

 

重新登陆后又会恢复,所以需要永久设置open files    的值才行啊,至于永久修改的方法大家可以google一下啊,

 

呵呵,这次永久修改后程序就再没那个问题了,一直稳定运行。

 

另外遇到这个问题这后还需要检查我们的程序对于操作io的流是否在操作完之后关闭,这才是从最更本上的解决。

 

以上就是我解决这个问题的过程,希望对大家有些帮助。

 

用ulimit -n 修改open files 总是不能保持。所以用下面一个简单的办法更好些。

修改/etc/security/limits.conf 添加如下一行:

* - nofile 1006154

修改/etc/pam.d/login添加如下一行

session required /lib/security/pam_limits.so

分享到:
评论

相关推荐

    shell连接不上linux虚拟机解决方案

    在IT领域,尤其是系统管理和软件开发过程中,经常遇到通过Shell无法远程连接到Linux虚拟机的问题。这不仅影响工作效率,还可能导致项目延期。本文将深入探讨这一问题的原因及解决方案,帮助读者快速定位并解决连接...

    解决linux下出现/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found问题

    这个错误可能出现在尝试运行由较新版本的GCC编译的二进制文件时,或者在没有正确更新GLIBC和libstdc++的旧Linux发行版上。 解决这个问题,我们可以按照以下步骤进行: 1. **检查当前版本**:首先,确认当前系统中`...

    jave-1.0.2-src.jar

    jave amr转mp3 64位 liunx&windows 有一个问题,win10上会失败,报错如下: it.sauronsoftware.jave.EncoderException: java.io.IOException: Cannot run program "C:\Users\...在最新的liunx contOS7上测试没有问题

    linux opencvjava320.so

    liunx opencv java320.so System.getProperty("java.library.path") 获取到library路径然后把so文件放到该目录下

    最新修复版Jave转换mp3、wav等语音,测试完美运行64位linux和windows

    jave-1.0.3.jar解决已知如下问题: 1、it.sauronsoftware.jave.EncoderException: Metadata 2、it.sauronsoftware.jave.EncoderException: video:0kB audio:1301kB subtitle:0kB other streams:0kB global headers:0...

    java jdk8 双系统安装包 Windows & liunx

    java jdk8 双系统安装包 Windows & liunx liunx 配置 修改etc/profile export JAVA_HOME=文件夹路径 export JRE_HOME=文件夹路径/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME...

    liunx 编译好的 GDAL3.2.0java调用)

    在Linux环境下,为了在Java应用程序中使用GDAL,通常需要通过SWIG(Simplified Wrapper and Interface Generator)工具来生成Java绑定,这通常涉及到一系列复杂的编译和配置步骤。然而,你提到的标题和描述表明,...

    JDK-11.0.11

    2. **Java Virtual Machine (JVM)**:JVM是Java平台的核心组成部分,它负责将编译后的Java字节码转换为特定操作系统下的机器指令,实现了跨平台的“一次编写,到处运行”特性。 3. **Java Class Library**:这个...

    liunx 开机更改root密码

    4. **修改内核参数**:在编辑模式下,找到以`kernel`或`linux16`(对于较旧的系统)开头的行,然后在行末添加`init=/bin/bash`。这将使系统在单用户模式下启动,也就是救援模式。 5. **启动系统**:按`Ctrl+X`或者`...

    修改linux进程可打开的文件数的限制open files

    修改linux进程可打开的文件数的限制open files linux中一切都是文件 默认linux一个进程可打开1024个文件 大并发需要达到5万个文件描述符FD,你必须修改该参数值才行

    environments was not found on the java.library.path 问题的解决方法

    标题中的问题 "The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path" 指的是在启动Apache Tomcat时遇到的一个错误,...

    一步步安装nginx搭建流媒体服务器

    一步步安装nginx搭建流媒体服务器的所有软件打包; nginx-1.8.0.tar.gz :应用服务器主程序 ...zlib-1.2.3.tar.gz :liunx下的JFFS文件系统制作工具 yamdi-1.9.tar.gz :为flv文件添加关键帧,才能实现拖动播放

    Install_TW7.0.4.1_Enterprise_Liunx.bin.zip

    《东方通Linux 7.0.4.1在麒麟系统上的安装详解》 东方通,作为国内知名的基础软件供应商,其产品广泛应用于企业级服务。本文将详细介绍如何在麒麟操作系统上安装东方通Linux版本7.0.4.1。这个安装包"Install_TW7.0....

    解决 github项目clone报错 Failed connect to github.com:443; Connection

    系统环境:CentOS Linux release 7.6.1810 (Core)  起因:npm构建时报错 npm ERR! Error while executing: npm ERR! /usr/bin/git ls-remote -h -t ...npm ERR! npm ERR!... Connection timed out npm

    怎样在linux下配置java开发环境.pdf

    在Linux环境下配置Java开发环境是每个Java开发者必须掌握的基础技能之一。以下是一个详细的步骤指南,帮助你理解如何在Linux系统中安装和配置Java Development Kit (JDK)。 首先,你需要从官方源获取JDK。在本例中...

    jdk1.8.0_231

    配置环境变量,vi /etc/profile,在文件最后添加配置 JAVA_HOME=/usr/local/java/jdk1.8.0_231/ JRE_HOME=/usr/local/java/jdk1.8.0_231/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_...

    liunx下的jdk和zookeeper.zip

    本主题将深入探讨在Linux环境下安装与配置Java JDK 1.8和Apache ZooKeeper的过程,这两个组件对于运行和管理Java应用程序,尤其是大数据框架如Hadoop和Spark,至关重要。 首先,我们关注的是JDK(Java Development ...

    java连接sap 环境配置文件

    Java连接SAP主要涉及到的是Java与SAP系统之间的交互,这通常通过SAP提供的Java Connector (JCo)来实现。SAP Java Connector (JCo) 是一个接口库,允许Java应用程序与SAP R/3系统进行通信。在这个过程中,我们需要...

    嵌入式Liunx应用程序开发笔记-代码.zip

    嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序...

    boostdesc_bgm.i.zip

    fatal error:boostdesc_bgm,i:没有那个文件或目录 ...解决方法,直接解压后放到放在 opencv_contrib/modules/xfeatures2d/src/ 路径下即可。注意*** 删除解压文件下的的“vgg_generated_120 - 副本”文件

Global site tag (gtag.js) - Google Analytics