转载自:
badguy的个人空间
客户端connect服务器,执行一定时间后,接口返回-99的错误。
查看错误信息: OS error code 99: Cannot assign requested address
猜想端口被用光的原因,网络搜索得到一个解释:客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端口号,所以新的连接没办法绑定端口,即 “Cannot assign requested address”。
通过netstat,的确看到很多TIME_WAIT状态的连接。
因为是调用API,所以无法对连接进行opt设置,只能通过设置系统配置得以解决。
解决办法:
执行命令修改如下2个内核参数:
// 开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用。
# sysctl -w net.ipv4.tcp_timestamps=1
// 表示开启TCP连接中TIME-WAIT sockets的快速回收。
# sysctl -w net.ipv4.tcp_tw_recycle=1
关于 TIME_WAIT 状态,可参看这篇文章:
TCP/IP状态图的TIME_WAIT作用
分享到:
相关推荐
主要介绍了 Tomcat Cannot assign requested address: JVM_Bind 非端口占用冲突的相关资料,需要的朋友可以参考下
底层报错 error:cannot assign requested address 原因 并发场景下 client 频繁请求端口建立tcp连接导致端口被耗尽 解决方案 root执行即可 sysctl -w net.ipv4.tcp_timestamps=1 开启对于TCP时间戳的支持,若该项...
标题 "maven 3.5.0 Cannot assign configuration entry 'pluginArtifacts' with value '${pl" 描述了一个在使用 Maven 3.5.0 版本时遇到的问题,该问题涉及到配置项 'pluginArtifacts' 的赋值错误,错误信息显示尝试...
Mar 21 21:25:02 VM_0_9_centos httpd: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80 Mar 21 21:25:02 VM_0_9_centos httpd: (98)Address already in use: AH00072: make_...
在移动互联网时代,WAP(Wireless Application Protocol)调用支付宝支付接口是常见的在线支付方式之一,尤其适用于手机网页端的电商应用。本教程将详细解释如何实现这一功能。 首先,我们需要了解支付宝提供的WAP...
当你遇到“Uncaught TypeError: Cannot assign to read only property 'exports' of object '#<Object>'”这样的错误,通常是因为在同一个模块中混用了CommonJS(`require`和`module.exports`)和ES6模块(`import`...
然而,随着技术的发展,Spring Boot和Spring MVC的流行,现在的趋势更多是采用Spring全家桶,因为它提供了更为全面且现代化的解决方案。 在学习三大框架时,开发者需要理解它们的核心理念和使用方法,包括配置文件...
在给定的【标题】"stmt_ss2016_16340198_孙肖冉_assign_81"和【描述】中,我们可以看到这是一项关于软件测试作业,主要探讨的是如何构建NextDate问题的弱一般等价类测试用例。 NextDate问题要求输入一个1812年至...
问题描述: 当想替换字符串内的部分习惯表述时报错,源码如下: num1 = int(input(请输入起始序数n1:)) num2 = int(input(请输入结束序数n2:)) fuc = input(请输入以n为变量的通项公式(eg:2*n+1):) ...
1. **连接池大小限制**:设置连接池的最大连接数是非常必要的,以防止无限制地创建连接导致资源耗尽。例如,在Golang HTTP连接池中,`MaxIdleConns`和`MaxIdleConnsPerHost`参数分别用于限制全局和特定主机的空闲...
在Vue开发过程中,有时会遇到一个常见的错误:`Uncaught TypeError: Cannot assign to read only property 'exports' of object '#<Object>'`。这个错误通常发生在使用Webpack打包Vue应用时,由于模块导入导出规范的...
在给定的"2020-2stmt_18342075_米家龙_assign51"任务中,要求计算代码片段的Halstead复杂度的11项内容。这些内容包括: 1. 操作符数量(Program Operators) 2. 操作数数量(Program Volumes) 3. 程序长度...
在软件测试中,理解和分析控制流图有助于识别潜在的问题,比如复杂的控制逻辑可能导致的错误,以及确保测试用例能够覆盖所有可能的执行路径。同时,计算环形复杂度可以帮助优化代码,降低维护成本,因为更复杂的代码...
标题中的“2020-2stmt_18342075_米家龙_assign41”可能是一个特定的项目编号或者作业名称,但没有提供足够的上下文来理解其具体含义。描述中同样重复了这个编号,没有提供额外信息。由于标签为空,我们无法直接获取...
标题中的“2020-2stmt_18342075_米家龙_assign11”可能是一个特定的作业编号或者文件命名格式,它并不直接提供具体的知识点,但可以推断这是一份关于软件工程的作业,由米家龙(18342075)在2020年的某个时间完成。...
需求变化通常会引发测试策略的调整,需要重新设计和实现功能,如果无法及时适应这些变化,可能导致质量标准的缺失,最终产出的软件可能无法满足预期的质量要求。 此外,软件设计与开发工具的选择也是风险之一。需求...
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL( acl => 'UTL_INADDR.xml', host => '*' ); COMMIT; END; / PL/SQL 过程已成功完成。 ``` 5. **测试** - 再次尝试执行原来的SQL语句: ```sql SELECT lower(utl_...
Getting_and_cleaning_data_assign1 Coursera 课程 - 作业 该文件描述了 run_analysis.R 脚本的工作原理: 步骤1:下载到工作文件夹并从解压缩数据并将文件夹重命名为“srcdata”。 ..* 确保文件夹“srcdata”和 ...
随着技术的快速发展,简单技术可能很快被淘汰,导致技术债务的积累,即未来需要投入更多时间和资源来更新或替换现有的技术解决方案。 最后,质量控制风险。简洁的敏捷开发可能过于关注关键功能的实现,而忽视了全面...