TCP三次握手-backlog队列问题
admin 8年前(2018-07-05) 1浏览
概述 之前有同事做压力测试时,发现无论如何都无法突破128并发的问题,经排查发现该服务器ACCEPT QUEUE队列都为128,限制了网络的并发。 TCP三次握手 Linux内核协议栈为一个TCP连接管理使用两个队列,一个是半链接队列SYN QUEU...
admin 8年前(2018-07-05) 1浏览
概述 之前有同事做压力测试时,发现无论如何都无法突破128并发的问题,经排查发现该服务器ACCEPT QUEUE队列都为128,限制了网络的并发。 TCP三次握手 Linux内核协议栈为一个TCP连接管理使用两个队列,一个是半链接队列SYN QUEU...
admin 9年前(2017-10-31) 1浏览
最近碰到一个client端连接异常问题,然后定位分析并查阅各种资料文章,对TCP连接队列有个深入的理解 查资料过程中发现没有文章把这两个队列以及怎么观察他们的指标说清楚,希望通过这篇文章能把他们说清楚一点 问题描述 JAVA的client和serve...
admin 10年前(2016-03-24) 1浏览
1. SH调度算法–尽量不要采用 一些业务为了支持会话保持,选择SH调度算法,以实现 同一源ip的请求调度到同一台RS上;但 SH算法本省没有实现一致性hash,一旦一台RS down,当前所有连接都会断掉;如果配置了inhibit_on_failu...
admin 11年前(2015-11-26) 5浏览
进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO过程在什么时间发生? 在刚刚结束的 PyCon2014 上海站,来自七牛云存储的 Python 高级工程师许智翔带来了关于 Python 的分享《Python中...
admin 11年前(2015-11-24) 2浏览
下面是可能丢数据包的点: 1、交换机 上连和下连端口的流量跑满或链路有问题,有些数据包会被交换机丢掉,抓对应端口的丢包计数值就可以获得这方面的数据。当然,不会每次都丢建立连接的syn数据包,另外,客户端也重传数据包,所以这一块不一定会导致请求数据的丢...
admin 11年前(2015-08-22) 6浏览
介绍 众所周知,NGINX 采用异步、事件驱动的方式处理连接。意味着无需对每个请求创建专门的进程或线程,它用一个工作进程(worker process)处理多个连接和请求。为了达到这个目的,NGINX采用非阻塞模式的 socket,并利用诸如 epo...
admin 11年前(2015-07-15) 3浏览
最近一直在忙着搞Ceph存储的优化和测试,看了各种资料,但是好像没有一篇文章把其中的方法论交代清楚,所以呢想在这里进行一下总结,很多内容并不是我原创,只是做一个总结。如果其中有任何的问题,欢迎各位喷我,以便我提高。 优化方法论 做任何事情还是要有个方...
admin 11年前(2015-07-08) 5浏览
在redhat网站查到下面的信息,说是因为内存不够的原因。我觉得这个可以当作出现这个问题的解释,但是却解释得不够“完美”,我仍旧还在疑惑中:如果是是因为内存不够的原因,那么在每次测试之前,只要保证机器状态一样,那么TCP: time wait buc...
admin 11年前(2015-07-03) 2浏览
一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发。简单说,在master上是并发模式(以InnoDB引擎为主)完成事务提交的,而在slave上,复制线程只有一个sql thread用于binlog的...
admin 11年前(2015-06-15) 4浏览
前段时间在看高级连接池的实现,所以高级连接池就是一次构建实例的时候,他会一次性创建出指定个数的链接对象,然后会把这些链接对象放到队列里面,然后会开一个线程专门去维护他们,好让他们别怪了,或者提前知道他们怪了,会在生成一个可用的链接。 该线程也会定时的...
admin 11年前(2015-04-24) 1浏览
一般来说nginx配置文件中对优化比较有作用的为以下几项: worker_processes 8; 1 nginx进程数,建议按照cpu数目来指定,一般为它的倍数。 worker_cpu_affinity 00000001 00000010 0000...
admin 11年前(2015-03-26) 1浏览
假如你有一个server段,listen 0.0.0.0:80;假如还有很多其它的listen x.x.x.x:80,那么,就会掉进这样一个坑里: 其实所有的连接,用到的listen队列都是listen 0.0.0.0:80这个socket的。 问题...
admin 11年前(2015-03-26) 3浏览
有时候nginx运行很正常,但是会发现错误日志中依旧有报错connect() failed (111: Connection refused) while connecting to upstream. 一般情况下我们的upstream都是fastc...
admin 12年前(2015-03-17) 2浏览
对于LINUX SA来说,服务器性能是需要我们特别关注的,包括CPU、IO、内存等等系统的优化变得至关重要,这里转载一篇非常不错的关于IO优化的文章,供大家参考和学习: 一、关于页面缓存的信息,可以用 cat /proc/meminfo 看到。其中的...
admin 12年前(2015-03-16) 1浏览
前些天,一堆人在 TCPCopy 社区里闲扯蛋,有人提了一个问题:FIN_WAIT1 能持续多久?引发了一场讨论,期间我得到斌哥和多位朋友的点化,受益良多。 让我们热热身,通过一张旧图来回忆一下 TCP 关闭连接时的情况: 看图可知,主动关闭的一方发...
admin 12年前(2015-03-16) 1浏览
数据结构 数据结构的概念很好理解,就是用来将数据组织在一起的结构。换句话说,数据结构是用来存储一系列关联数据的东西。在Python中有四种内建的数据结构,分别是List、Tuple、Dictionary以及Set。大部分的应用程序不需要其他类型的数据...
admin 12年前(2015-03-16) 1浏览
Python中,队列是线程间最常用的交换数据的形式。Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。 创建一个“队列”对象 import Queue q = Queue.Queue(maxsize = 10) Q...
admin 12年前(2015-03-16) 1浏览
我的blog前面有一篇文章描述了 软终端导致单cpu消耗100% 的文章 linux内核软中断引起大量丢包 ,导致机器丢包跟延迟高的问题,文中我只是简单的说明了一下升级内核进行解决的,这个问题我并没有进行一个问题解决的说明,经历了一系列的调整后,单机...
admin 12年前(2015-03-16) 4浏览
一切的工程都要从实用的角度出发,排除 GLSB 在外,目前主流的开放的前端无非就那几种: 1. 最简单的就是 DNS RR,上手很快,缺点也很明显 2. web server + keepalived,相对智能些,依然有缺点,没有 health ch...
admin 12年前(2015-03-16) 1浏览
最近用linux做nat多出口时,遇到的几个问题,经过一个星期的资料查找跟具体实践终于给解决了,由于的问题复杂性,加之个人水平十分有限,解决的过程十分的痛苦,为了使更多的人,不痛苦或者少痛苦一点,介绍一下问题解决的过程。 先说说 环境 硬件:DELL...
admin 12年前(2015-03-15) 3浏览
Tomcat 常用运行模式有3种,分别为 bio,nio,apr.生产环境建议用apr,详细请看 tomcat的三种模式(bio、nio、apr) 安装APR [root@aikaiyuan ~]# yum -y install apr apr-de...
admin 12年前(2014-08-14) 3浏览
最近在学习TCP方面的基础知识,对于古老的SYN Flood也有了更多认识。SYN Flood利用的是TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。 SYN Flood的原理简单,实现也不...
admin 13年前(2014-03-12) 2浏览
SYN 包攻击是网络上比较老的一种攻击方式。在 Linux 中,可以通过开启 net.ipv4.tcp_syncookies = 1 来抵抗这种攻击。那么,在开启 syncookies 之后,Linux 系统做了些什么?如何做的?这是本文试图整理的内...
admin 13年前(2013-11-20) 1浏览
python原生的list,dict等,都是not thread safe的。而queue,是线程安全的。Queue.Queue类即是一个队列的同步实现。今天有个需求,典型的“生产者消费者问题”,刚好可以用到queue,挺好用。 python que...