发布时间:

Aug 29, 2020

更新时间:

Aug 29, 2020

总字数:482

阅读时间:1m

作者: 谢先斌

Java程序链接数过多导致java.net.SocketException: No buffer space available问题

问题

跑java的程序,报错如下:

java.net.SocketException: No buffer space available (maximum connections reached?): connect

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

...

现象

通过netstat -an查看到存在大量的socket资源被占用

原因

http / tcp 连接未释放

系统 socket 连接数设置过小

解决方式

Linux

在/etc/security/limits.conf添加:

* soft nofile 204800

* hard nofile 32768

在/etc/sysctl.conf添加:

# Decrease TIME_WAIT seconds, default is 30 seconds

net.ipv4.tcp_fin_timeout=10

# Recycle and Reuse TIME_WAIT sockets faster, default is 0 for both

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

参数说明:

net.ipv4.tcp_fin_timeout 系統默认的TIMEOUT时间

net.ipv4.tcp_tw_reuse 允许将TIME_WAIT sockets重新用于新的TCP连接 默认为0表示关闭

net.ipv4.tcp_tw_recycle 开启TCP连接中TIME_WAIT sockets的快速回收 默认为0 表示关闭

windows

启动注册表编辑器

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

新建 MaxUserPort

值名称:MaxUserPort

值类型:DWORD

值数据:十进制65534/十六进制是FFFE

PS:有效范围:5000 - 65534 (十进制) 默认:0x1388 5000(十进制)

新建 TCPTimedWaitDelay

值名称:TCPTimedWaitDelay

值类型:DWORD

值数据:十进制30/0000001e

java 链接占用太多_Java程序链接数过多导致java.net.SocketException: No buffer space available问题...相关推荐

  1. java.net.SocketException:No buffer space avaliable(maximum connection reached?):JVM_Bind 解决办法...

    No buffer space available 2009-06-15 14:03 java.net.SocketException: No buffer space available (maxi ...

  2. java gc占用cpu问题_Java进程占用CPU高的问题跟踪

    http://www.cublog.cn/u/12331/showart_255325.htmlWebLogic高cpu消耗诊断一例故障分析报告故障描述2007-3-6日上午,在系统监控时发现WebL ...

  3. java简述对象的组合_Java程序运行和对象创建过程简述

    Java中一个对象创建分为两个步骤: 加载类,创建对象. 加载类是将所写的程序.java文件编译生成的.class文件加载到内存中,保证了对象创建的预置环境.类加载完毕后才可以创建该类的对象. 第一步 ...

  4. java程序结构_Java 程序结构说明(学习 Java 编程语言 004)

    1. 一个简单的类 创建 FirstSample.java 文件,来编写最简单的 Java 应用程序.下面是示例代码: public class FirstSample { public static ...

  5. java技术栈有哪些_Java程序员必备的21个核心技术,你都掌握了哪些?

    前言 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容. ​1. JVM相关 对于刚刚接触Java的人来说,JVM相关的知识不一 ...

  6. 世界java大神有哪些_JAVA基础复习1:开始Java世界的第一个程序

    之前,我已经安装好了Java,并且设置好了Java配置.那么来写一段进入Java世界的第一个程序. 1.打开记事本(曾经看过廖大神的一个博客,说是不建议使用Windows自带的记事本,因为有时候会添加 ...

  7. java生成cmd jar包_Java程序运行机制及cmd编译运行探究(二) cmd编译运行Java程序并打成jar包...

    目标:写一个RandomUtils.java工具类,返回一个随机数,并把这个类的字节码文件打成jar包 在Java运行机制及cmd编译运行探究(一)准备工作一文中,我总结了一部分要用到的cmd及编译运 ...

  8. java runtime是什么软件_Java SE Runtime Environment (JRE) 运行Java程序的必备软件

    Java SE Runtime Environment 运行Java程序的必备软件 因JAVA高度的安全性以及跨平台的特性,使得稳居网络应用程序语言的首选,这也使用得越来越多的程序员选择了Java,这 ...

  9. Java控制台不运行怎么办_java控制台自动关闭,无法运行java应用程序

    打开java应用程序,弹出了java控制台,但1秒钟后就关闭了.看不懂日志,报错日志如下,还请高手指教:(之前是好的,安装myeclipse9.0以后就是像现在这样.把myeclipse9.0彻底删除 ...

最新文章

  1. 计算起点地址和终点地址的最短驾车距离和驾车时间
  2. 算法与数据结构(面向对象思想)
  3. 智能型炉温测试仪kic x5软件,X5系列_KIC-7通道/9通道/12通道炉温测试仪
  4. java检测用户是否重复登录_Java web工程判断用户是否重复登录
  5. JavaScript判断访问终端
  6. Linux启动hbase的shell命令出现警告_Linux 系统故障排查和修复技巧
  7. 【图像分割】基于matlab粒子群优化指数熵图像分割【含Matlab源码 287期】
  8. synchronized互斥锁结合wait()、notify()方法使用,实现线程的阻塞以及线程调用案例
  9. python密码安全性检查代码
  10. STM32学习笔记二、DS18B20单总线上挂载多路采集
  11. python验证码识别cnn_用CNN识别验证码的实用教程
  12. Vue小写金额转大写金额以及watch(监听)的使用
  13. 概率论笔记5.1大数定律
  14. 福州华侨中学计算机老师,三尺讲台著妙笔 谱写侨习好韶光——记2015级福州华侨中学实习队工作检查...
  15. java跟mysql实训报告_实训 java_MYSQL
  16. 【正则表达式验证邮箱】
  17. office连接oracle,office2013怎么连接32位oracle
  18. js 日期 加天数计算
  19. 弟弟的作业(湖南省第六届程序设计大赛)
  20. LED照明灯具与传感器技术

热门文章

  1. 处理顶点——使用索引移除冗余顶点
  2. 12月份最后一期天下足球
  3. 双中心积分计算氟化氢HF的动能和势能
  4. java无参试题_JavaEE基础面试题0
  5. python顺序表代码_python实现顺序表的简单代码
  6. 【STM32】typedef 类型及配合结构体使用
  7. STM32 电机教程 8 - 步进电机开环电流控制
  8. 创客编程帮助孩子提升学习成绩,是一项长远投资!
  9. [Android工具]安卓百度云盘百度网盘资源搜索工具,安卓网盘搜索软件
  10. 二、制作最小linux系统