内容简介:首先,看一下TCP握手简单描绘过程:其握手过程原理,就不必说了,有很多详细文章进行叙述,本文只关注研究重点。在第三次握手过程中,如果服务器收到ACK,就会与客户端建立连接,此时内核会把连接从半连接队列移除,然后创建新的连接,并将其添加到全连接队列,等待进程调用。
问题1:connection reset by peer
首先,看一下TCP握手简单描绘过程:
2020-07-25 14-03-46 的屏幕截图.png
其握手过程原理,就不必说了,有很多详细文章进行叙述,本文只关注研究重点。
在第三次握手过程中,如果服务器收到ACK,就会与客户端建立连接,此时内核会把连接从半连接队列移除,然后创建新的连接,并将其添加到全连接队列,等待进程调用。
如果服务器繁忙,来不及调用连接导致全连接队列溢出,服务器就会放弃当前握手连接,发送RST给客户端,即connection reset by peer。
设置服务器的tcp_abort_on_overflow=0,可以在服务器的全连接队列有空位时,接受到客户端的重试ACK,任然会触发服务端连接成功。
问题2:Socket/File : too many open files
在 linux 平台上,客户端在进行高并发TCP连接处理时,最高并发数量都要受系统对用户单一进程同时打开文件数量的限制(这是因为系统每个TCP都是SOCKET句柄,每个soker句柄都是一个文件),当打开连接超过限制,就会出现too many open files。
使用下指令查看最大句柄数量:
ulimit -a
增加句柄解决方案
vim /etc/security/limits.conf #在最后加入 * soft nofile 4096 * hard nofile 4096
有疑问加站长微信联系
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 快应用开发常见问题及解决方案
- 快应用开发常见问题及解决方案
- 基于深度学习的目标检测算法综述:常见问题及解决方案
- 数字资产交易平台开发常见的安全问题及解决方案
- 消息队列常见问题
- Echarts 常见问题
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
代码整洁之道:程序员的职业素养
罗伯特·C.马丁 (Robert C.Martin) / 余晟、章显洲 / 人民邮电出版社 / 2016-9-1 / 49.00元
1. 汇聚编程大师40余年编程生涯的心得体会 2. 阐释软件工艺中的原理、技术、工具和实践 3. 助力专业软件开发人员具备令人敬佩的职业素养 成功的程序员在以往的工作和生活中都曾经历过大大小小的不确定性,承受过永无休止的压力。他们之所以能够成功,是因为拥有一个共同点,都深切关注创建软件所需的各项实践。他们将软件开发视为一种需要精雕细琢加以修炼的技艺,他们以专业人士的标准要求自己,......一起来看看 《代码整洁之道:程序员的职业素养》 这本书的介绍吧!
JS 压缩/解压工具
在线压缩/解压 JS 代码
URL 编码/解码
URL 编码/解码