良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

kernel: TCP: time wait bucket table overflow

kernel: TCP: time wait bucket table overflow错误的解决办法

现象为message日志报如下错误:

Feb 27 10:53:36 web kernel: __ratelimit: 5 callbacks suppressed

Feb 27 10:53:36 web kernel: TCP: time wait bucket table overflow
Feb 27 10:53:36 web kernel: TCP: time wait bucket table overflow
Feb 27 10:53:36 web kernel: TCP: time wait bucket table overflow


阅读全文...

快速回收TCP连接

通过sysctl去改变established状态的timeout值:

# sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=600

永久保存:写入/etc/sysctl.conf   再执行sysctl -p


然后你再试试,应该就好了,默认 TCP 连接痴呆保持是 120 小时,也就是 5 天
这样就改成 10 分钟了,数值可随你心意去调


阅读全文...

Linux下socket最大连接数所受的限制小结

1、修改用户进程可打开文件数限制
在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制:

阅读全文...

TCP洪水攻击(SYN Flood)的诊断及处理

1. SYN Flood介绍

前段时间网站被攻击多次,其中最猛烈的就是TCP洪水攻击,即SYN Flood。

SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的 TCP连接请求,常用假冒的IP或IP号段发来海量的请求连接的第一个握手包(SYN包),被攻击服务器回应第二个握手包(SYN+ACK包),因为对方是假冒IP,对方永远收不到包且不会回应第三个握手包。导致被攻击服务器保持大量SYN_RECV状态的“半连接”,并且会重试默认5次回应第二个握手包,塞满TCP等待连接队列,资源耗尽(CPU满负荷或内存不足),让正常的业务请求连接不进来。

详细的原理,网上有很多介绍,应对办法也很多,但大部分没什么效果,这里介绍我们是如何诊断和应对的。


阅读全文...