TCP三次握手-backlog队列问题
admin 7年前 (2018-07-05) 3001浏览 0评论
概述 之前有同事做压力测试时,发现无论如何都无法突破128并发的问题,经排查发现该服务器ACCEPT QUEUE队列都为128,限制了网络的并发。 TCP三次握手 Linux内核协议栈为一个TCP连接管理使用两个队列,一个是半链接队列SYN QUEU...
admin 7年前 (2018-07-05) 3001浏览 0评论
概述 之前有同事做压力测试时,发现无论如何都无法突破128并发的问题,经排查发现该服务器ACCEPT QUEUE队列都为128,限制了网络的并发。 TCP三次握手 Linux内核协议栈为一个TCP连接管理使用两个队列,一个是半链接队列SYN QUEU...
admin 7年前 (2017-10-31) 2952浏览 0评论
最近碰到一个client端连接异常问题,然后定位分析并查阅各种资料文章,对TCP连接队列有个深入的理解 查资料过程中发现没有文章把这两个队列以及怎么观察他们的指标说清楚,希望通过这篇文章能把他们说清楚一点 问题描述 JAVA的client和serve...
admin 9年前 (2016-03-06) 4855浏览 0评论
1. SH调度算法–尽量不要采用 一些业务为了支持会话保持,选择SH调度算法,以实现 同一源ip的请求调度到同一台RS上;但 SH算法本省没有实现一致性hash,一旦一台RS down,当前所有连接都会断掉;如果配置了inhibit_...
admin 9年前 (2015-11-24) 4699浏览 0评论
下面是可能丢数据包的点: 1、交换机 上连和下连端口的流量跑满或链路有问题,有些数据包会被交换机丢掉,抓对应端口的丢包计数值就可以获得这方面的数据。当然,不会每次都丢建立连接的syn数据包,另外,客户端也重传数据包,所以这一块不一定会导致请求数据的丢...
admin 9年前 (2015-08-22) 5351浏览 0评论
介绍 众所周知,NGINX 采用异步、事件驱动的方式处理连接。意味着无需对每个请求创建专门的进程或线程,它用一个工作进程(worker process)处理多个连接和请求。为了达到这个目的,NGINX采用非阻塞模式的 socket,并利用诸如 epo...
admin 10年前 (2015-07-19) 6046浏览 1评论
进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO过程在什么时间发生? 在刚刚结束的 PyCon2014 上海站,来自七牛云存储的 Python 高级工程师许智翔带来了关于 Python 的分享《Python中...
admin 10年前 (2015-07-15) 5459浏览 0评论
最近一直在忙着搞Ceph存储的优化和测试,看了各种资料,但是好像没有一篇文章把其中的方法论交代清楚,所以呢想在这里进行一下总结,很多内容并不是我原创,只是做一个总结。如果其中有任何的问题,欢迎各位喷我,以便我提高。 优化方法论 做任何事情还是要有个方...
admin 10年前 (2015-07-08) 4124浏览 0评论
在redhat网站查到下面的信息,说是因为内存不够的原因。我觉得这个可以当作出现这个问题的解释,但是却解释得不够“完美”,我仍旧还在疑惑中:如果是是因为内存不够的原因,那么在每次测试之前,只要保证机器状态一样,那么TCP: time wait buc...
admin 10年前 (2015-06-02) 5311浏览 0评论
前段时间在看高级连接池的实现,所以高级连接池就是一次构建实例的时候,他会一次性创建出指定个数的链接对象,然后会把这些链接对象放到队列里面,然后会开一个线程专门去维护他们,好让他们别怪了,或者提前知道他们怪了,会在生成一个可用的链接。 该线程也会定时的...
admin 10年前 (2015-04-24) 4986浏览 0评论
一般来说nginx配置文件中对优化比较有作用的为以下几项: worker_processes 8; 1 nginx进程数,建议按照cpu数目来指定,一般为它的倍数。 worker_cpu_affinity 00000001 00000010 0000...
admin 10年前 (2015-04-13) 5479浏览 0评论
一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发。简单说,在master上是并发模式(以InnoDB引擎为主)完成事务提交的,而在slave上,复制线程只有一个sql thread用于binlog的...
admin 10年前 (2015-02-15) 3621浏览 0评论
Python中,队列是线程间最常用的交换数据的形式。Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。 创建一个“队列”对象 import Queue q = Queue.Queue(maxsize = 10) Q...
admin 10年前 (2015-02-06) 3046浏览 0评论
数据结构 数据结构的概念很好理解,就是用来将数据组织在一起的结构。换句话说,数据结构是用来存储一系列关联数据的东西。在Python中有四种内建的数据结构,分别是List、Tuple、Dictionary以及Set。大部分的应用程序不需要其他类型的数据...
admin 10年前 (2014-11-07) 4387浏览 0评论
前些天,一堆人在 TCPCopy 社区里闲扯蛋,有人提了一个问题:FIN_WAIT1 能持续多久?引发了一场讨论,期间我得到斌哥和多位朋友的点化,受益良多。 让我们热热身,通过一张旧图来回忆一下 TCP 关闭连接时的情况: 看图可知,主动关闭的一方发...
admin 10年前 (2014-11-06) 5731浏览 0评论
Tomcat 常用运行模式有3种,分别为 bio,nio,apr.生产环境建议用apr,详细请看 tomcat的三种模式(bio、nio、apr) 安装APR [root@aikaiyuan ~]# yum -y install apr apr-de...
admin 10年前 (2014-10-28) 4075浏览 0评论
一切的工程都要从实用的角度出发,排除 GLSB 在外,目前主流的开放的前端无非就那几种: 1. 最简单的就是 DNS RR,上手很快,缺点也很明显 2. web server + keepalived,相对智能些,依然有缺点,没有 health ch...
admin 10年前 (2014-09-13) 2851浏览 0评论
假如你有一个server段,listen 0.0.0.0:80;假如还有很多其它的listen x.x.x.x:80,那么,就会掉进这样一个坑里: 其实所有的连接,用到的listen队列都是listen 0.0.0.0:80这个socket的。 问题...
admin 10年前 (2014-08-14) 3367浏览 0评论
现在nginx + fpm 基本成为主流的配置,其中我们比较关注的是pm.max_chindren的配置 首先,我们关注一个前提设置: pm = static/dynamic, 这个选项是标识fpm子进程的产生模式: static :表示在fpm运行...