`

linux下open too many files错误Socket未正确关闭的处理方法

 
阅读更多

1. 首先用lsof -p PID 查看一下打开文件的列表如果出现下图状况基本就两种可能,stream未关闭或者socket未关闭,出现can't identify protocol字样

2. 用netstat -anp | grep PID查看端口占用情况,若出现下图情况,证明Socket未关闭

原因:

  是因为Socket协议本身,若正确关闭一个Socket需要往返消息4次,若中途有未接到的消息就会停留在某个状态下,比如当前的CLOSE_WAIT

解决办法:

  客户端:主动关闭任何一个socket,尽量在finally中加入socket.close()语句。

  服务器:设置读取超时时间如:socket.setSoTimeout(3000);其次在用完之后主动关闭,做法同客户端方式。同时在任何的异常加入socket.shutdownInput();socket.shutdownOutput();

 

分享到:
评论

相关推荐

    报错:too many open files处理

    针对“too many open files”错误,我们可以采取以下几种解决方法: 1. **调整系统限制**:可以通过修改`/etc/security/limits.conf`文件来永久性地提高用户或组的文件描述符限制。例如,为所有用户增加限制: ```...

    socket accept报too many open files的原因

    socket accept报Too many open files的原因

    访问应用很慢,访问Nginx时,报错:accept() failed (24 Too many open files).docx

    "解决 Nginx 访问慢和 accept() failed 错误的方法" 在本文中,我们将讨论 Nginx 访问慢和 accept() failed 错误的解决方案。这个问题通常是由于 Nginx 的连接数超过了系统设定的最大值造成的。下面是解决这个问题...

    Python错误提示:[Errno 24] Too many open files的分析与解决

    最近在工作中发现了一个错误,在执行多线程扫描脚本的时候频繁出现下面这个错误 HTTPConnectionPool(host=‘t.tips', port=80): Max retries exceeded with url: /index.php (Caused by NewConnectionError('...

    socket常见错误代码解析.pdf

    Socket Error 10024 - Too many open files Socket Error 10024是指打开了太多的文件,这种错误通常是由于系统资源不足所致。解决方法是关闭一些不需要的文件或释放系统资源。 Socket Error 10035 - Resource ...

    socket错误代码对应表

    - **Socket error #10024 - Too many open files**:打开了太多的文件。 - **Socket error #10035 - Resource temporarily unavailable**:资源暂时不可用。 - **Socket error #10036 - Operation now in progress**...

    Can't create TCP/IP socket(24).原因及解决办法

    在Linux或Unix系统中,错误代码24通常与"Too many open files"相关,意味着当前进程已经打开了太多的文件或连接,超过了系统允许的最大限制。 描述进一步确认了这个问题,即无法创建TCP/IP套接字,并提供了寻找解决...

    Linux 下应用程序最大打开文件数的理解和修改.docx

    当遇到“Too many open files”错误时,首先应检查是否由于未正确关闭文件或套接字导致。可以使用`lsof -p $java_pid`列出Java进程占用的文件描述符,`lsof -p $java_pid | wc -l`计算总数,以便分析问题是否由资源...

    http连接关闭

    too many open files问题分析和解决

    Linux下应用程序大打开文件数的理解和修改

    运行在Linux系统上的Java程序运行了一段时间后出现Too many open files的异常情况。  这种情况常见于高并发访问文件系统,多线程网络连接等场景。程序经常访问的文件、socket在Linux中都是文件file,系统需要记录...

    bigslice:一种用于Go编程语言的无服务器集群计算系统

    大片 Bigslice是的无服务器集群数据处理系统。...如果测试因socket: too many open files失败socket: too many open files错误socket: too many open files ,请尝试增加打开文件的最大数量。 $ ulimit -n 2000

    Linux下查看进程打开的文件句柄数和如何修改方法

    如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示。如何知道当前进程打开了多少个文件句柄呢?下面一段小脚本可以帮你查看: 1.lsof -n |awk ‘{print $2}’|sort|...

    从Linux源码看Socket(TCP)Client端的Connect的示例详解

    如果超过且非特权用户,返回`-ENFILE`错误,表示“Too many open files in system”。特权用户(拥有`CAP_SYS_ADMIN`能力)不受此限制。 3. **发起Connect** `connect()`系统调用负责实际的连接过程。它接收Socket...

    linux的最大进程句柄数设置

    系统默认值 1024,对于一般的应用来说已经足够使用,但是对于需要处理大量请求的应用,可能会出现“too many files open”的错误提示。 要知道当前进程打开了多少个文件句柄,可以使用以下命令: lsof -n | awk '{...

    linux下文件描述符限制问题

    通常,当尝试打开新的文件描述符时,如果达到上限,系统会返回一个错误,如“Too many open files”。 二、问题分析 分析问题的关键在于理解文件描述符的工作原理和限制。首先,可以通过`ulimit -n`命令查看当前...

    26_如何选择合适的分区数 - 2(csdn)————程序.pdf

    - "Too many open files" 错误表明Linux系统达到了文件描述符的限制。默认情况下,Linux系统允许的文件描述符数量有限,这包括打开的文件、Socket连接等。可以通过`ulimit`命令查看和调整这个限制。 - `-n`选项...

    正确理解python中的关键字“with”与上下文管理器

    前言 如果你有阅读源码的习惯,...极端情况下会出现 “Too many open files” 的错误,因为系统允许你打开的最大文件数量是有限的。 同样,对于数据库,如果连接数过多而没有及时关闭的话,就可能会出现 “Can not c

    Nginx性能配置[参照].pdf

    提高这个值可以允许Nginx处理更多的并发连接,避免“too many open files”的错误。 3. **events模块**: - **worker_connections**:设置每个工作进程的最大并发连接数,不应超过系统允许的最大socket连接数。 -...

    服务器集群及优化笔记

    3. 分析性能瓶颈,例如ab测试中可能出现的"too many open files"错误,可以通过调整ulimit增加文件描述符限制。 4. 调整Nginx配置,如设置keepalive_timeout为0,避免在高并发下过多占用TCP连接。 5. 观察服务器打开...

    ppt的测试版本---无用 不要下载

    当这些资源耗尽时,服务器将无法接受更多的TCP连接,可能出现"too many open files"或OOM(Out Of Memory)错误。 服务器通常固定在本地端口监听,等待来自不同客户端的IP和端口的连接请求,因此客户端的IP和端口...

Global site tag (gtag.js) - Google Analytics