TCP: time wait bucket table overflow】的更多相关文章

早上一台rabbitmq和Java所在的服务器,客户端反馈超级卡,看io和cpu都不高.发现六七万消息挤压,临时性问题解决之后,看/var/log/messages,发现很多TCP: time wait bucket table overflow,如下所示: Nov 22 10:36:08 iZ237hn51s7Z kernel: TCP: time wait bucket table overflowNov 22 10:36:08 iZ237hn51s7Z kernel: TCP: time…
转载自http://blog.51cto.com/benpaozhe/1767612: 一直对这个问题知其然而不知其所以然,这些日子再次碰到,看了很多的资料,彻底解决一下,呵呵,先上个图,所有理解围绕着此图来看,此图描述了四次挥手的整个过程: 通过此图先说明几个概念: TIME_WAIT的产生条件:主动关闭方在发送四次挥手的最后一个ACK会变为TIME_WAIT状态,保留次状态的时间为两个MSL(linux里一个MSL为30s,是不可配置的) TIME_WAIT两个MSL的作用:可靠安全的关闭T…
# 故障描述 有一个需求是实时分析API接口访问日志,提取token去数据库查询对应的uid,然后收集一些指标存入到hbase中. 当程序执行一会后会被系统杀死 Killed ! # 故障排查 .CPU平均负载0..内存空闲29G .查看系统日志 /var/log/messages 提示:kernel: TCP: time wait bucket table overflow .查找资料发现是因为 socket TIME_WAIT 超出了内核设定的上限值 # 解决方法 shell > vim /…
/var/log/messages 中出现大量的 TCP: time wait bucket table overflow 引起该现象的原因是服务器tcp的连接数太多,超出了内和定义的最大数 临时改变使用 # > /proc/sys/net/ipv4/tcp_max_tw_buckets 永久有效可如下 #vim /etc/sysctl.conf net.ipv4.tcp_max_tw_buckets = # sysctl -p 执行命令 netstat -an | | awk '{print…
.TCP: time wait bucket table overflow tcp的连接数超出了服务器设置的连接数 1 2 3 4 5 6 [root@test log]# netstat -antp | awk '/^tcp/{++a[$6]}END{for (i in a) printf("%-10s\t%d\n",i,a[i])}'         [root@test log]# netstat -nt | cut -c 40- | cut -d: -f1 | sort | u…
在android项目中要实现一个需求 为了性能的要求只能用c代码来实现功能. 这样就牺牲了java跨平台性. 通过加载.so的方式,把用c实现的模块集成到app中. android提供jni层,作为一个适配器. 可以在java层调用c接口,在jni层可以通过java提供的反射机制调用java接口和创建java对象. 最后需求完成了,自测也没问题,嘻嘻,自己也开心了一下,但是提交测试后,测试人员马上报了一个bug. 出现local reference table overflow (max=512…
接到保障,说某来机器服务没法访问,于是,准备连接到机器上去看个究竟. 尼玛居然连不上,连ping都ping不通,无奈只能求助机房. 机房人员检查, 发现报 neighbour table overflow 错误. 无奈让机房的人员重启了服务器. 查找原因,搜索得到如下说法: 第一种说法: 内核维护的arp表过于庞大, 发生抖动, 因此导致了这种情况,几个内核ARP参数:=================================gc_stale_time决定检查一次相邻层记录的有效性的周期…
前言 bucket table(桶表)是对数据进行哈希取值,然后放到不同文件中存储 应用场景 当数据量比较大,我们需要更快的完成任务,多个map和reduce进程是唯一的选择.但是如果输入文件是一个的话,map任务只能启动一个.此时bucket table是个很好的选择,通过指定CLUSTERED的字段,将文件通过hash打散成多个小文件. create table test (id int, name string ) CLUSTERED BY(id) SORTED BY(name) INTO…
[root@jiangyi01.sqa.zmf /home/ahao.mah] #grep . /proc/sys/net/ipv4/neigh/default/gc_thresh* /proc/sys/net/ipv4/neigh/default/gc_thresh1:512 /proc/sys/net/ipv4/neigh/default/gc_thresh2:4096 /proc/sys/net/ipv4/neigh/default/gc_thresh3:8192 解决方法: echo 1…
原因是没即时释放对象,原本的代码是这样 static jobject getMaps(JNIEnv *env,jclass obj) { jclass stringbuilder_class = (*env)->FindClass(env,"java/lang/StringBuilder"); jmethodID init_stringbuilder_Method = (*env)->GetMethodID(env,stringbuilder_class,"<…
转载:http://huoding.com/2013/12/31/316  http://blog.csdn.net/lxnkobe/article/details/7525317  http://kerry.blog.51cto.com/172631/105233/ 讨论前大家可以拿手头的服务器摸摸底,记住「ss」比「netstat」快: shell> ss -ant | awk ' NR>1 {++s[$1]} END {for(k in s) print k,s[k]} ' 如果你只是想…
TIME WAIT 带来的问题 先引用一个名言: The TIME_WAIT state is our friend and is there to help us (i.e., to let old duplicate segments expire in the network). Instead of trying to avoid the state, we should understand it. 据说这话的是 W. Richard Stevens 说的.也就是说 TIME WAIT…
后面整理相关信息 //后面整理相关信息 /* * This function implements the receiving procedure of RFC 793 for * all states except ESTABLISHED and TIME_WAIT. * It's called from both tcp_v4_rcv and tcp_v6_rcv and should be * address independent. */ int tcp_rcv_state_proces…
在了解 TCP 的基本机制后本文继续介绍 Linux 内核提供的链接队列.TW_REUSE.SO_REUSEPORT.SYN_COOKIES 等机制以优化生产环境中遇到的性能问题. 连接队列 Linux 内核会维护两个队列: 半连接队列: syn_backlog, 服务端收到了 SYN 但未回复的连接, 队列的大小通过 net.ipv4.tcp_max_syn_backlog 指定 全连接队列: accept_backlog, 三次握手完成但未调用 accept 的连接, 队列的大小为 min(…
linux TIME_WAIT 相关参数: net.ipv4.tcp_tw_reuse = 表示开启重用.允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭 net.ipv4.tcp_tw_recycle = 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭 net.ipv4.tcp_fin_timeout = 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间(可改为30,一般来说FIN-WAI…
之所以起这样一个题目是因为很久以前我曾经写过一篇介绍TIME_WAIT的文章,不过当时基本属于浅尝辄止,并没深入说明问题的来龙去脉,碰巧这段时间反复被别人问到相关的问题,让我觉得有必要全面总结一下,以备不时之需. 讨论前大家可以拿手头的服务器摸摸底,记住「ss」比「netstat」快: shell> ss -ant | awk ' NR>1 {++s[$1]} END {for(k in s) print k,s[k]} ' 如果你只是想单独查询一下TIME_WAIT的数量,那么还可以更简单一…
参考了很多东西,但有些理解可能会有错误的地方,希望看到错误的地方可以即使纠正. 参考的内容. http://netsecurity.51cto.com/art/200608/30428.htm http://blog.csdn.net/shootyou/article/details/6615051 http://blog.csdn.net/shootyou/article/details/6622226 http://rhomobi.com/topics/47 http://rdc.taoba…
最近在进行一次性能测试中遇到一个问题,并发较大的时候会出现LR出现Error -27791: Server xx has shut down the connection prematurely的ERROR,然后还有同数量的失败交易, 系统架构是nginx---tomcat,遂进行以下排查: 1.开启nginx的access日志,进行测试,出错时记录下LOADRUNNER通过的事务数,和access中访问记录数做比对,发现二者一致.那么LR的失败交易是因为没有成功和nginx建立连接. 2.查看…
http://huoding.com/2013/12/31/316 之所以起这样一个题目是因为很久以前我曾经写过一篇介绍TIME_WAIT的文章,不过当时基本属于浅尝辄止,并没深入说明问题的来龙去脉,碰巧这段时间反复被别人问到相关的问题,让我觉得有必要全面总结一下,以备不时之需. 讨论前大家可以拿手头的服务器摸摸底,记住「ss」比「netstat」快: shell> ss -ant | awk ' NR>1 {++s[$1]} END {for(k in s) print k,s[k]} '…
高性能linux服务器内核调优 首先,介绍一下两个命令1.dmesg 打印系统信息.有很多同学们服务器出现问题,看了程序日志,发现没啥有用信息,还是毫无解决头绪,这时候,你就需要查看系统内核抛出的异常信息了,使用dmesg命令,可以查看系统信息,dmesg -c 清除已经看过的信息.2.sysctl -p 生效内核配置在我们修改内核参数文件/etc/sysctl.conf后,需要执行以下sysctl -p 来使参数生效. nginx服务器内核调优 用户请求,最先进入的是nginx服务器,那我们首…
本文总结了常见的 Linux 内核参数及相关问题.修改内核参数前,您需要: 从实际需要出发,最好有相关数据的支撑,不建议随意调整内核参数. 了解参数的具体作用,且注意同类型或版本环境的内核参数可能有所不同. 备份 ECS 实例中的重要数据.参阅文档创建快照. 查看和修改 Linux 实例内核参数 方法一.通过 /proc/sys/ 目录 查看内核参数:使用 cat 查看对应文件的内容,例如执行命令 cat /proc/sys/net/ipv4/tcp_tw_recycle 查看 net.ipv4…
转自:http://my.oschina.net/chenzhuo/blog/150200?p=2#comments 根据系统内存64G估算单台tengine做反向代理最高支持72万连接.为了验证达到该连接数时系统稳定运行,进行压测,先验证nginx与client建立72万连接时性能(不转发). 关闭超线程,12核CPU对应12个nginx worker进程,每个进程worker_connections为60000,且关闭accept_mutex.前端LVS做FNAT模式转发,开synproxy…
[net] ######################## cat /proc/sys/net/ipv4/tcp_syncookies # 默认值:1 # 作用:是否打开SYN Cookie功能,该功能可以防止部分SYN攻击 net.ipv4.tcp_syncookies = 1   ######################## cat /proc/sys/net/ipv4/ip_local_port_range # 默认值:32768   61000 # 作用:可用端口的范围 net.i…
[root@vm-10-124-66-212 ~]# netstat -an|awk -F ' ' '{print $NF}'|sort |uniq -c |sort -rn|more 5552 TIME_WAIT 631 ESTABLISHED 22 SYN_RECV 10 LISTEN dmesg Log: TCP: time wait bucket table overflow TCP: time wait bucket table overflow产生原因及影响:原因是超过了linux系…
近日平稳运行了将近4年的发号器突然出现问题,在元旦0分的时候出现短暂的性能下降,导致发号失败率飙高到一个不可接收的值,哎,意外总是发生在你想不到的地方. 这几天赶紧和小伙伴们赶紧追查原因,制定改造方案,下面记录一下分析和定位问题的过程,以便后期查阅,并不在同一个地方跌倒两次. 一.分析过程 1.现象 现象是业务所用的uuid服务的6052端口出现性能下降,导致成功率下降. 2.日志 出问题第一反应就是去看日志,我们HAProxy的日志级别是notice,具体的报错如下 Jan  1 00:00:…
tcp连接是网络编程中最基础的概念,基于不同的使用场景,我们一般区分为“长连接”和“短连接”,长短连接的优点和缺点这里就不详细展开了,有心的同学直接去google查询,本文主要关注如何解决tcp短连接的TIME_WAIT问题. 短连接最大的优点是方便,特别是脚本语言,由于执行完毕后脚本语言的进程就结束了,基本上都是用短连接.但短连接最大的缺点是将占用大量的系统资源,例如:本地端口.socket句柄.导致这个问题的原因其实很简单:tcp协议层并没有长短连接的概念,因此不管长连接还是短连接,连接建立…
[net] ######################## cat /proc/sys/net/ipv4/tcp_syncookies # 默认值: # 作用:是否打开SYN Cookie功能,该功能可以防止部分SYN攻击 net.ipv4.tcp_syncookies = ######################## cat /proc/sys/net/ipv4/ip_local_port_range # 默认值: # 作用:可用端口的范围 net.ipv4.ip_local_port_…
一.系统相关 1.系统关键文件设置 1.1.设置文件初始权限 设置默认的umask值,增强安全性. [root@localhost ~]# umask 0022 /etc/profile最下面添加一行: [root@localhost ~]# vim /etc/profile umask 027 上面的设置,即新创建的文件属主拥有读写执行权限,同组用户拥有读和执行权限,其他用户无权限. 1.2.锁定关键文件 用chattr命令防止系统中的一些关键文件被修改 +i表示文件不允许新增.删除.修改.改…
# Kernel sysctl configuration file for Red Hat Linux## For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and# sysctl.conf(5) for more details. # Controls IP packet forwardingnet.ipv4.ip_forward = 0 # Controls source route verificationnet.…
# Kernel sysctl configuration file for Red Hat Linux## For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and# sysctl.conf(5) for more details. # Controls IP packet forwardingnet.ipv4.ip_forward = 1 # Controls source route verificationnet.…