转载:nf_conntrack: table full, dropping packet
netfilter/conntrack 相关内核参数往往是用 Linux 服务器的互联网小公司业务量上去之后遇到的第 3 个 “新手怪”。(第 1 位:进程可用的 FD 不足,第 2 位:IP 临时端口不足 + TIME_WAIT 状态的连接过多导致无法建立新连接) 很多人以为 Linux 经过这么多年优化,默认参数应该 “足够好”,其实不是。默认参数面向 “通用” 服务器,不适用于连接数和访问量比较多的场景。 症状服务器负载正常,但请求大量超时,服务器/应用访问日志看不到相关请求记录。 在 dmesg 或 /var/log/messages 看到大量以下记录: 1kernel: nf_conntrack: table full, dropping packet. 原因服务器访问量大,内核 netfilter 模块 conntrack 相关参数配置不合理,导致 IP 包被丢掉,连接无法建立。 详细nf_conntrack 模块在 kernel 2.6.15(2006-01-03 发布)被引入,支持 IPv4 和 IPv6,取代只支持 IPv4 的 ip_con...
linux.net.ipv4等若干参数
Linux下TCP/IP及内核参数优化有多种方式,参数配置得当可以大大提高系统的性能,也可以根据特定场景进行专门的优化,如TIME_WAIT过高,DDOS攻击等等。如下配置是写在**/etc/sysctl.conf**中,可使用sysctl -p生效,相关参数仅供参考,具体数值还需要根据机器性能,应用场景等实际情况来做更细微调整。 net.core.netdev_max_backlog = 262144#该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目,我推荐262144。 net.core.optmem_max = 10000000#该参数指定了每个套接字所允许的最大缓冲区的大小 net.core.rmem_default = 10000000#指定了接收套接字缓冲区大小的缺省值(以字节为单位)。 net.core.rmem_max = 16777216#指定了接收套接字缓冲区大小的最大值(以字节为单位,我推荐16M。 net.core.somaxconn ...
Realm: Linux下,流量转发端口转发工具,支持本机BBR
realm地址: https://github.com/zhboner/realm 简介 支持DDNS 只要传入一个域名,那么就能自动后台更新解析。高效,低消耗 依托于Rust语言,Realm保证内存安全。另外,相较于采用Go语言编写的Brook和gost,Realm执行速度更快,资源占用更低,非常适合在低配置的主机上使用。简单 相较于使用iptables动辄几条复杂的命令,Realm仅需一条命令就能启动,保证了部署的方便。UDP + TCP 无需额外的工作,Realm就能同时转发UDP和TCP。 下载,安装 linux环境下载此包, 然后放在**/usr/bin**下, 并赋予可操作权限 使用方式Start from command line arguments:123456# 让 realm 监听本机上的 5000 端口,然后转发流量到 1.1.1.1:443#具体的,启动 realm 需要两个参数:-l 和 -r。#-l 指定监听的本机地址和端口,地址可以省略,但必须指定端口。不指定地址的话会使用默认的 127.0.0.1 地址#-r 指定转发的目的...
