记一次性能优化,单台4核8G机器支撑5万QPS
admin 6年前 (2019-02-06) 4267浏览 0评论
前言 这篇文章的主题是记录一次Python程序的性能优化,在优化的过程中遇到的问题,以及如何去解决的。为大家提供一个优化的思路,首先要声明的一点是,我的方式不是唯一的,大家在性能优化之路上遇到的问题都绝对不止一个解决方案。 如何优化 首先大家要明确的...
admin 6年前 (2019-02-06) 4267浏览 0评论
前言 这篇文章的主题是记录一次Python程序的性能优化,在优化的过程中遇到的问题,以及如何去解决的。为大家提供一个优化的思路,首先要声明的一点是,我的方式不是唯一的,大家在性能优化之路上遇到的问题都绝对不止一个解决方案。 如何优化 首先大家要明确的...
admin 6年前 (2018-07-05) 3030浏览 0评论
正常TCP建连接三次握手过程: 第一步:client 发送 syn 到server 发起握手; 第二步:server 收到 syn后回复syn+ack给client; 第三步:client 收到syn+ack后,回复server一个ack表示收到了s...
admin 6年前 (2018-07-05) 2477浏览 0评论
2013年12月14发布的PHP5.5.6中,changelog中有一条变更, FPM: Changed default listen() backlog to 65535. 这条改动,是在10月28日改的,见increase backlog to ...
admin 6年前 (2018-07-05) 3490浏览 0评论
1. SYN Flood介绍 前段时间网站被攻击多次,其中最猛烈的就是TCP洪水攻击,即SYN Flood。 SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的...
admin 6年前 (2018-07-05) 2967浏览 0评论
概述 之前有同事做压力测试时,发现无论如何都无法突破128并发的问题,经排查发现该服务器ACCEPT QUEUE队列都为128,限制了网络的并发。 TCP三次握手 Linux内核协议栈为一个TCP连接管理使用两个队列,一个是半链接队列SYN QUEU...
admin 7年前 (2017-10-31) 2861浏览 0评论
如果出现 SYN 丢包,那么将导致严重的性能问题,如果没有严重到完全连不上,那么在延迟时间上会表现出明显的时间特征,比如:1秒,3秒,7秒,15秒,31秒,具体可以参考:「SYN和RTO」,本文不说这个,就说说哪些情况会出现 SYN 丢包。 SYN ...
admin 7年前 (2017-10-31) 2746浏览 0评论
The story of one latency spike,文章中介绍了 cloudflare 工程师如何一步一步 debug 网络延迟问题,细细读来受益良多,不过我并不打算详细介绍那篇文章的细枝末节, 本文只摘录一个点: When debuggi...
admin 7年前 (2017-07-24) 3299浏览 0评论
三次握手 ListenOverflows root@b5dbe93bcb04:/opt# netstat -s | grep listen 22438 times the listen queue of a socket overflowed tcp...
admin 7年前 (2017-07-24) 2999浏览 0评论
今天编程序的偶然遇到了一点问题,然后小研究了一下,发现一些以前不知道的事情,还有点小吃惊 ,记录一下。有些观点可能有问题,求指正。 我们都知道listen参数有个参数backlog。如果服务器不能及时调用accept,把连接从listen queue...
admin 7年前 (2017-07-24) 2938浏览 0评论
问题 我们在Linux上服务器起了一个serversocket,并且设置了backlog为2,并没有让serversock.accept() 在客户端上,我们一个一个的启动了连接socket, 当连接数目超过3的时候,客户端依然可以继续新建连接。 什...
admin 7年前 (2017-07-24) 3344浏览 0评论
TCP Others Others 类别 名称 描述 TcpExt TCPBacklogDrop tcp_v4_rcv() : 如果socket被user锁住,后退一步内核会把包加到sk_backlog_queue,但如果因为sk_rcv_buf不足...
admin 7年前 (2017-07-24) 3102浏览 0评论
继续讲述/proc/net/netstat, /proc/net/snmp中TCP的故事。 TCP Congestion Processing 类别 名称 描述 TcpExt TCPDSACKUndo tcp_ack() -> tcp_fa...
admin 7年前 (2017-07-24) 3097浏览 0评论
最近在总结2.6.32与2.6.18的差异,我特别有兴趣的是网络部分,但猛然发现其实SNMP counters我也并不能准确解释它们的含义,于是就有了以下总结,还不完整,持续总结中: 加粗的项代表TODO,还有一些counters没有列出来。 ...
admin 7年前 (2017-07-10) 3401浏览 0评论
TCP连接的建立和终止 TCP连接建立过程 三次握手 TCP连接建立过程需要经过三次握手,如图所示,三次握手的具体过程如下: 客户端发送SYN包,指明打算连接的服务器端口,以及初始序号ISN(SYN包占用一个序号,seq=X,SYN) 服务端收到客户...
admin 7年前 (2017-06-06) 3778浏览 0评论
在LVS的FULLNAT转发模式下, LVS对数据包同时做SNAT和DNAT,将数据包的源IP、源端口更换为LVS本地的IP和端口,将数据包的目的IP和目的端口修改为RS的IP和端口,从而不再依赖特定网络拓朴转发数据包。 这种方式存在一个问题: Re...
admin 8年前 (2016-09-10) 3607浏览 0评论
所谓 CLOSE_WAIT,借用某位大牛的话来说应该倒过来叫做 WAIT_CLOSE,也就是说「等待关闭」,如果你还不理解其含义,可以看看 TCP 关闭连接时的图例: TCP Close 不要被图中的 client 和 server 所迷惑,你只要记...
admin 8年前 (2016-09-10) 2824浏览 0评论
最近发现一个PHP脚本时常出现连不上服务器的现象,调试了一下,发现是TIME_WAIT状态过多造成的,本文简要介绍一下解决问题的过程。 遇到这类问题,我习惯于先用strace命令跟踪了一下看看: shell> strace php /path/...
admin 8年前 (2016-09-10) 3035浏览 0评论
前些天,有朋友问我关于 FIN_WAIT2 的问题:如果主动关闭的一方在进入 FIN_WAIT2 状态后没有收到被动关闭的一方发送的 FIN 包,那么会怎样? 让我们热热身,通过一张旧图来回忆一下 TCP 关闭连接时的情况: TCP Close 按照...